provider_unavailable means the model service failed, or could not be reached, on every route OpenType tried. Read this page when runs fail with this code; it is a service-side outage and your request is fine.
What happened
Route:POST /v1/runs.
The model service answered with a server error, or the connection to it failed. OpenType already tried its fallback route before answering. The service keeps Neon 1.1 in rotation while its upstream is configured, so an outage shows up as failed runs like this one rather than as a refusal before the run.
Every provider_* code has the same message, “the provider call failed”. Branch on code, never on the message. The message never contains model output.
If this was the first model call, the run was refused before the model served it. You are not charged, and the hold is released, but the run stays pending: a replay with the same Idempotency-Key returns 202 with "state": "pending". If an earlier call in the same run was served (a verdict repair), the run is settled failed and a replay returns 200 with "state": "failed". In both cases, retry with a new key.
How to fix
- Retry with backoff (for example 2, 4, 8 and 16 seconds) and a new
Idempotency-Keyon each attempt. Log therequest_idof every failed attempt. - If every attempt over several minutes fails, stop and report one of the
request_idvalues. - Do not change the request: it was not the cause.
Example
Related
- Error handling - a status-to-action table and a retry helper for every error.
- Idempotency - when to reuse an
Idempotency-Keyand when to send a new one. - Request ids - send your own
x-request-idand quote it when you report a problem. - Problem codes - every code, its status, and whether a retry can help.