错误码
统一错误响应体、错误码总表(HTTP 状态码、触发场景)与重试建议
本页的错误体适用于对话、图像、视频统一协议、Midjourney、音乐、语音、转写接口;各接口特有的 code 见其页面的「错误」章节。Kling 原生接口(含 /v1/videos/avatar 等旧版路径)和 Seedance 方舟 / 素材库接口沿用官方错误体,见 Kling 错误和方舟接口。Claude 的 /v1/messages 使用 Anthropic 错误体 {"type":"error","error":{"type","message"}},见 Claude 错误。
请求失败时返回统一 JSON 错误体:
{
"error": {
"message": "human readable message",
"type": "insufficient_credits",
"code": "insufficient_credits",
"request_id": "..."
}
}| 字段 | 说明 |
|---|---|
message | 面向人类的描述,仅供调试,不要按内容做逻辑判断 |
type / code | 取值始终相同,为下表的 code |
request_id | 本次请求唯一标识,联系支持时请提供 |
错误码总表
| code | HTTP | 适用接口 | 触发场景 |
|---|---|---|---|
invalid_api_key | 401 | 全部 /v1/* | Authorization 头缺失/格式错误,或 API Key 无效/已禁用 |
invalid_request | 400 | Chat、图像生成 | 请求体不合法(JSON 格式错误,或缺失 model/messages 等必填字段) |
invalid_request_error | 400 | 视频生成 | 请求体不合法(非法 JSON、callback_url 非字符串或不满足 https/公网地址要求等) |
model_not_allowed | 403 | Chat、图像生成 | model 不在该 API Key 的白名单内 |
quota_exceeded | 403 | 全部 /v1/* 非 GET 请求;视频生成 | API Key 配额已用尽(API key quota exceeded (settled usage));或视频生成额度用尽(video generation quota exceeded) |
ip_not_allowed | 403 | 全部 /v1/* | 客户端 IP 不在该 API Key 的允许列表内,见鉴权 |
rate_limit_exceeded | 429 | 全部 /v1/* | 用户或 API Key 请求频率超限 |
media_concurrency_exceeded | 429 | 图像、视频、音乐、语音、转写、Midjourney | 用户或 API Key 的媒体任务并发超限,响应带 Retry-After: 5 |
model_not_found | 404 | Chat、图像生成、视频生成 | 平台没有该模型 |
task_not_found | 404 | 视频生成 | task_id 不存在,或不属于当前账户 |
insufficient_credits | 402 | Chat、图像生成、视频生成 | 账户余额不足以覆盖预扣费用 |
upstream_error | 502 | Chat、图像生成、视频生成 | 上游返回错误或平台重试耗尽;已扣费的场景会退还(见各接口文档) |
no_available_channel | 503 | Chat、图像生成、视频生成 | 该模型当前没有可用渠道 |
internal_error | 500 | 全部 /v1/* | 平台内部错误 |
重试建议
| 类别 | 做法 |
|---|---|
5xx(upstream_error、no_available_channel、internal_error) | 指数退避重试;前两者通常是暂时性的 |
429(rate_limit_exceeded、media_concurrency_exceeded) | 按 Retry-After(如有)或指数退避后重试 |
| 4xx | 先按 message 修正参数或账户状态再发起,重试不会改变结果(insufficient_credits 先充值,invalid_api_key 先检查 key) |