invalid_request 可能是图片尺寸不符合要求, 不能据此判断模型不支持图片输入.
从哪里读取错误
请求错误示例, 文案仅用于说明:
code 也不等于 HTTP 状态码; 返回 success: false 的接口需要检查响应体.
code 用于识别错误, reason 在提供时补充任务失败类别, message 用于阅读具体情况. error.type 是错误类型, 不一定等于错误码. 文案可能随语言变化, 不要通过完整匹配 message 控制业务逻辑. 部分鉴权响应的 code 为空, 部分协议只有 type 和 message.
请求错误速查
下表列出公开请求可能遇到的标识, 并非每个接口都会返回全部标识. 不同模型也可能保留不同的原始拼写. 字段位置按上表中的响应格式读取.invalid_request 可能具体指什么
以下情况来自实际请求和失败任务的诊断归纳. 它们可能由上述通用参数码包裹, 也可能以更具体的reason 或模型原始错误码返回. 先看具体字段和说明, 再决定修改什么.
历史失败中的具体数值不是全平台限制. 能否传图片要看模型是否支持该输入, 不能仅根据
invalid_request 或 invalid_image 推断.
任务失败原因速查
任务已返回 ID 后, 以查询状态为准. 普通生成任务失败常见error.code=generation_failed, 具体分类读取可选的 error.reason. 以下标识是 reason, 不应假定它们都出现在请求错误的 code 字段.
若响应提供 error.input_media_errors, 逐项读取 type, index, message. 例如 type=image, index=0 指向原请求的第一张图片, 可以只修正该素材. 这些明细不是所有模型或查询格式都提供.
部分模型保留原始错误, 如
InvalidParameter.TaskTypeConstraint, RateLimitReached, InputImageSensitiveContentDetected 或 OutputVideoSensitiveContentDetected. 这些取值不是完整枚举, 分别可能涉及任务参数, 服务限流, 输入审核或输出审核.
Seedance Global 查询的 error.code 和 error.message 可能是原始 JSON 值, 包括数字或 null, 也可能缺省. OpenAI 视频格式和 Webhook 不保证提供 reason. 客户端应容忍未知码, 缺省字段和不同字段类型; 不要把原始数字 code 当作 HTTP 状态.
重试与请求恢复
- 参数, 格式和内容审核问题: 修改输入后再提交. 原样重试通常不能解决.
- 限流或暂时不可用: 有
Retry-After时优先遵守; 否则使用指数退避和随机抖动, 避免无限重试. - 已有任务 ID: 继续查询该任务, 或接收任务 Webhook.
queued和in_progress不表示失败, 不要因此创建重复任务. - 视频提交超时或返回
submission_unconfirmed: 如果原请求使用了client_request_id, 用同一账号调用GET /v1/video/requests/{client_request_id}. 得到task_id后查询任务;submitting或unknown表示继续等待. 只有恢复记录明确为failed且error_code=submission_rejected时, 才表示该请求已被明确拒绝, 可按提示发起新请求. 此恢复能力只适用于支持并使用了该字段的视频入口, 不适用于所有 API.
billing 字段; 字段缺省不代表免费或退款完成. Webhook 是事件快照, 不保证与后续查询的计费字段完全相同.