错误与重试
读取统一的错误响应,判断是否应该重试,并避免重复创建视频任务。
所有 API 错误都使用同一种 JSON 结构。请在日志中保存 request_id;联系支持时需要提供这个标识符。
{
"error": {
"code": "invalid_request",
"message": "Unsupported model.",
"param": "model",
"request_id": "req_2YgM6pg5oM2WkKpQ"
}
}| 状态码 | 含义 | 是否重试 |
|---|---|---|
400 | JSON 格式错误 | 否;修正请求正文 |
401 | API 密钥缺失、无效或已撤销 | 否;更换密钥 |
402 | 当前可用积分不足 | 否;充值或等待预留积分释放 |
403 | 当前套餐不能使用所选模型或画质 | 否;修改参数或升级套餐 |
404 | 任务不存在,或任务属于其他账号 | 否 |
415 | Content-Type 不是 application/json | 否;修正请求头 |
422 | 参数无效、模型不可用,或提示词被拦截 | 否;修正请求 |
429 | 达到 API 密钥速率限制或并发生成上限 | 是;退避后重试 |
500 | 内部错误 | 是;等待后重试 |
502 | 上游视频服务未能启动任务 | 是;等待后重试 |
503 | 视频生成或内容审核服务暂时不可用 | 是;等待后重试 |
安全重试
收到 429、500、502 或 503 时,请使用带随机抖动的指数退避,并设置最大重试次数。轮询 GET /v1/tasks/{task_id} 可以安全重试。
重试创建请求可能产生重复任务
当前版本不支持幂等键。如果 POST /v1/videos/generations
已成功,但客户端没有收到响应,再次提交 POST
可能会创建第二个任务并再次预留积分。请记录每个返回的
task_id;结果不明确时,不要自动重试 POST。