Errors and retries
Learn which errors are safe to retry and how to avoid duplicate video tasks.
Every API error uses the same JSON structure. Save the HTTP status and error message in your logs and include them when you contact support.
{
"error": {
"message": "Choose an available video model",
"code": 400
}
}| Status | Meaning | Retry? |
|---|---|---|
400 | The input, JSON, available credits, or concurrent task count is invalid | No. Fix the request or wait for active tasks |
401 | The API key is missing, invalid, or revoked | No. Replace the key |
403 | The account cannot access the API | No. Check account access |
404 | The task does not exist or belongs to another account | No |
413 | The request body exceeds 2 MB | No. Reduce the request size |
429 | Requests are too frequent | Yes, with backoff |
500 | An internal error occurred | Yes, after a delay |
503 | The selected model is temporarily unavailable | Yes, after a delay |
Retry safely
For 429, 500, and 503, use exponential backoff with jitter and set a maximum retry count. You can safely poll GET /v1/tasks/{task_id}.