Normalized error codes
ModelRoute maps all provider-specific errors into 12 deterministic error codes. Regardless of which provider executes your request, you always receive the same error taxonomy.| Code | HTTP Status | Retryable | Description |
|---|---|---|---|
INPUT_VALIDATION_ERROR | 400 | No | Invalid input parameters. Check the details array for field-level errors. |
CONTENT_MODERATION_REJECTED | 400 | No | Content was rejected by safety filters. Modify your input. |
FILE_NOT_FOUND | 400 | No | Referenced file does not exist or has expired. Re-upload the file. |
FILE_FORMAT_UNSUPPORTED | 400 | No | File format not supported for this model. Check model documentation. |
INSUFFICIENT_BALANCE | 402 | No | Not enough balance. Top up your account at the dashboard. |
RATE_LIMITED | 429 | Yes | Rate limit exceeded. Wait for X-RateLimit-Reset and retry. |
MODEL_OVERLOADED | 503 | Yes | Model temporarily at capacity. Retry with exponential backoff. |
MODEL_UNAVAILABLE | 503 | Yes | Model temporarily unavailable. Retry shortly. |
GENERATION_TIMEOUT | 504 | Yes | Generation timed out. Retry or use async execution. |
GENERATION_FAILED | 500 | Yes | Generation failed at the provider level. Retry the request. |
SERVICE_UNAVAILABLE | 503 | Yes | ModelRoute platform temporarily unavailable. Retry shortly. |
INTERNAL_ERROR | 500 | No | An unexpected internal error. Contact support with the request_id. |
Detailed guidance
INPUT_VALIDATION_ERROR
details array and resubmit.
CONTENT_MODERATION_REJECTED
FILE_NOT_FOUND
FILE_FORMAT_UNSUPPORTED
INSUFFICIENT_BALANCE
RATE_LIMITED
X-RateLimit-Reset response header for the reset timestamp. Implement exponential backoff.
MODEL_OVERLOADED
MODEL_UNAVAILABLE
GENERATION_TIMEOUT
GENERATION_FAILED
SERVICE_UNAVAILABLE
INTERNAL_ERROR
request_id from the error response.