跳转到主要内容
先区分请求失败和任务执行失败, 再查错误标识与具体说明. 同一个错误码可能对应多种情况, 例如 invalid_request 可能是图片尺寸不符合要求, 不能据此判断模型不支持图片输入.

从哪里读取错误

请求错误示例, 文案仅用于说明:
任务执行失败示例:
第二个示例中的倍数只用于展示一种具体约束, 不适用于所有模型. 查询返回 HTTP 200 表示查询成功, 仍需检查任务状态. 数字业务 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 是事件快照, 不保证与后续查询的计费字段完全相同.

联系支持时提供什么

提供请求时间和时区, 模型名, 接口路径, HTTP 状态, 请求 ID, 可用的任务 ID, 错误 code/reason 和脱敏后的具体说明. 图片问题附上尺寸, 格式和文件大小即可. 不要提供 API Key, 签名 URL, 完整提示词或私人素材; 需要复现时使用可公开的最小示例.