错误码

错误码

BeatAPI 的每一次失败都用一组固定的错误码表示。程序判断请看错误码;错误信息是写给人看的一句话。两者都不会转述模型供应商返回给我们的任何内容——不含供应商名称、不含供应商的状态码、不含供应商的原始报错。联系支持时请保留 request_id

失败出现在哪里

任务可能在两个时间点失败,表现不同:

  1. 创建时。 请求在任务生成之前被拒绝。你会收到带 error 对象的 HTTP 错误,没有 data.id,不扣费。
  2. 任务被接受之后。 POST 已返回 201data.id,任务之后以 status: "failed" 结束。GET /v1/tasks/{task_id} 依然返回 200,失败原因在 data.error_codedata.error_message 里,为该任务预扣的额度会退回。
{
"error": {
"code": "content_policy_violation",
"message": "The request was blocked by content moderation. Please change the prompt or the input and try again.",
"request_id": "req_abc123"
}
}
{
"data": {
"id": "task_8K2qA",
"status": "failed",
"error_code": "content_policy_violation",
"error_message": "The request was blocked by content moderation. Please change the prompt or the input and try again."
}
}

同一种失败在这两处的错误码相同,控制台用量日志里的错误行也是同一个码(content_policy_violation: The request was blocked…)。

错误码

发生了什么创建时任务接受后怎么处理
提示词、输入素材或生成结果未通过内容审核400 content_policy_violationcontent_policy_violation修改提示词或素材,不要原样重发
该模型不接受某个参数(尺寸、比例、时长、数量、提示词长度等)400 bad_requestbad_request按错误信息修改对应字段,原样重试仍会失败
输入链接无法下载,或文件无法处理400 bad_requestbad_request使用可公开访问的 HTTPS 链接,或换成支持的格式
API 密钥缺失、无效或已撤销401 unauthorized到控制台核对当前有效的密钥;已删除的密钥立即失效
账户余额不足402 insufficient_credits充值
账户无权执行该操作,例如免费额度不能调用该模型403 forbidden查看错误信息;免费额度账户充值后即可解锁全部模型
同一幂等键对应了不同请求体409 idempotency_conflict幂等键只用于完全相同的请求
你的密钥请求过于频繁,或你同时运行的任务过多429 rate_limit_exceeded / user_concurrency_exceeded等待 retry_after_seconds,或等运行中的任务结束
模型暂时不可用或我方容量已满503 processing_unavailableprocessing_unavailable稍后退避重试
生成未在规定时间内完成504 processing_timeoutprocessing_timeout重试
结果已生成但未能保存502 result_transfer_failedresult_transfer_failed重试
我方其他原因导致生成失败502 processing_failedprocessing_failed重试
内部异常500 internal_error重试一次;仍失败请携带 request_id 联系支持

processing_unavailablerate_limit_exceeded 含义不同:rate_limit_exceeded 针对你的请求频率,意思是请放慢;processing_unavailable 表示模型此刻无法接单,你的请求本身没有问题。

重试策略

  • 不要原样重试: content_policy_violationbad_requestunauthorizedforbiddeninsufficient_creditsidempotency_conflict
  • 等待后重试: rate_limit_exceededuser_concurrency_exceeded(有 retry_after_seconds 时按其等待)、processing_unavailable
  • 退避重试: processing_timeoutprocessing_failedresult_transfer_failedinternal_error。使用指数退避并设置上限;失败的任务已退款,新的尝试只有成功才会产生费用。

变更记录

  • 2026-09-23:任务接受后因参数不被接受或输入无法获取而失败,现在报 bad_request(原为 processing_failed)。创建时不再透传模型供应商的状态码:内容审核拒绝一律为 400 content_policy_violation,供应商不可用为 503 processing_unavailable。创建时余额不足为 402 insufficient_credits