Errors use the OpenAI envelope, error.message, error.type, error.param, error.code, with Routeplane-branded codes in error.code and extra detail under x_routeplane.
| Status | Meaning | Example code |
|---|---|---|
| 400 | Malformed routing config or metadata. | invalid_config |
| 401 | Missing or invalid virtual key. | , |
| 402 | Budget exhausted. | routeplane_budget_exceeded |
| 403 | Feature not entitled / not released. | feature_not_entitled |
| 404 | Unknown prompt or version. | prompt_not_found |
| 422 | Sovereign refusal, or embeddings unsupported. | embeddings_not_supported |
| 429 | Rate limit exceeded. | routeplane_rate_limit_exceeded |
| 446 | Blocked by guardrails. | routeplane_guardrails_denied |
| 500 | All eligible providers failed. | , |