I've never had the Coach produce an answer.
Tested on 2.9.1+54-rc1, both providers, keys entered against the right provider in Settings.
OpenAI : HTTP 400, every request :
Model selected: gpt-5.4. Any question, including the built-in "Explain my heart rate trend" :
Coach error · HTTP 400
Invalid schema for response_format 'coach_response':
In context=('properties', 'chart'), 'additionalProperties' is required
to be supplied and to be false.
Structured outputs require every nested object in the schema to declare additionalProperties: false, and the chart object doesn't.
The request is rejected before the model sees it, so this has nothing to do with my key or my quota and should fail identically for anyone on OpenAI.
Gemini : 503, then 429, with the quota nowhere near spent :
With gemini-flash-latest I get, repeatedly and across several days :
Coach error · HTTP 503
This model is currently experiencing high demand.
Switching to gemini-flash-lite-latest and pushing further eventually gave :
Coach error · HTTP 429
You exceeded your current quota, please check your plan and billing details.
I nearly wrote this off as my own free-tier limit. But my Google AI Studio rate-limit dashboard shows peak usage well under every ceiling over the last 28 days.
So the 429 doesn't match what Google says my usage is, and I can't explain it.
Minor: retired models in the picker :
The OpenAI list also offers gpt-4o, gpt-4o-mini and o4-mini.
As far as I know gpt-4o was retired earlier this year, and the other two are from the same older generation.
gpt-5.4 is in the list too and is what I used, so this isn't the cause of the 400 — just worth a tidy-up.
Screenshots of both errors attached.

I've never had the Coach produce an answer.
Tested on
2.9.1+54-rc1, both providers, keys entered against the right provider in Settings.OpenAI : HTTP 400, every request :
Model selected:
gpt-5.4. Any question, including the built-in "Explain my heart rate trend" :Structured outputs require every nested object in the schema to declare
additionalProperties: false, and thechartobject doesn't.The request is rejected before the model sees it, so this has nothing to do with my key or my quota and should fail identically for anyone on OpenAI.
Gemini : 503, then 429, with the quota nowhere near spent :
With
gemini-flash-latestI get, repeatedly and across several days :Switching to
gemini-flash-lite-latestand pushing further eventually gave :I nearly wrote this off as my own free-tier limit. But my Google AI Studio rate-limit dashboard shows peak usage well under every ceiling over the last 28 days.
So the 429 doesn't match what Google says my usage is, and I can't explain it.
Minor: retired models in the picker :
The OpenAI list also offers
gpt-4o,gpt-4o-miniando4-mini.As far as I know
gpt-4owas retired earlier this year, and the other two are from the same older generation.gpt-5.4is in the list too and is what I used, so this isn't the cause of the 400 — just worth a tidy-up.Screenshots of both errors attached.