失败响应的 HTTP 状态码与 JSON 信封与官方一致:type 固定为 error,error.type 是错误类别,error.message 是给人看的英文说明,request_id 用于排障。
| HTTP | error.type | 含义 |
|---|---|---|
400 | bad_request_error | 参数不合法:缺提示词、枚举不认、素材超限、首尾帧与参考素材混用、素材拉取失败、task_id 无效等。 |
401 | authorized_error | 缺 Authorization 头、Key 错误 / 已吊销 / 已过期;成片链接过期也回 401。 |
402 | insufficient_balance_error | 开放平台余额不足。message 里写明这条任务需要多少、当前可用多少;到控制台「账户」页充值后重试。 |
422 | unprocessable_entity_error | 内容不可处理(预留,与官方一致)。 |
429 | rate_limit_error | 每 Key 每分钟请求数超限,或在飞任务数达到上限;看 Retry-After 头。 |
500 | server_error | 服务端异常,请带 request_id 联系我们。 |
503 | server_error | 开放接口暂时关闭或定价未配置;稍后重试。 |
任务级失败
创建成功但生成失败的任务不会以 HTTP 错误出现——查询接口返回 status=failed 与 error.code / error.message,预扣的费用已退回。
视频超分任务的 error.code(invalid_source、insufficient_balance 等)见 创建超分任务 · 失败原因。
重试建议
- 400 / 401 / 402 不要重试,先改请求或充值。
- 429 按 Retry-After 等待后重试;在飞上限触发的 429 要等已有任务完成。
- 500 / 503 指数退避重试(如 5s、15s、45s)。
Error envelope
{
"type": "error",
"error": {
"type": "bad_request_error",
"message": "duration must be an integer number of seconds",
"http_code": "400"
},
"request_id": "7c2b2d2a3c3f4a1e9d2b0c6c8a1f2e3d"
}