Error Handling
Errors follow an OpenAI-style shape with a stable type.
json
{
"error": {
"message": "No anthropic key connected. Add one in your dashboard.",
"type": "provider_key_missing",
"code": 402
}
}| Status | Type | Meaning |
|---|---|---|
| 400 | invalid_request_error | Malformed body or unknown model alias. |
| 401 | authentication_error | Missing, malformed or revoked gateway key. |
| 402 | provider_key_missing | No provider key connected for the requested model. |
| 402 | no_candidates | Auto-router found no usable model for your connected providers. |
| 402 | budget_exceeded | A daily or monthly spend limit has been reached. |
| 403 | guardrail_blocked | A guardrail blocked the request content. |
| 404 | preset_not_found | The referenced @preset/<slug> does not exist. |
| 429 | rate_limit_error | Too many requests — back off and retry. |
| 502 | provider_error | The upstream provider returned an error. |
On 429 responses, honour the Retry-After header before retrying.