跳转到内容

错误与重试

错误以 JSON 形式返回,包含稳定的、机器可读的 error 码和匹配的 HTTP 状态。

{
"error": "rate_limited",
"message": "Too many requests.",
"retry_after_ms": 850
}
HTTPerror是否重试?说明
400invalid_request否某个参数未通过校验 —— 请修复请求。
401missing_api_key / unknown_api_key否参见 认证。
403inactive_api_key / account_blocked否密钥已禁用或账户已暂停。
402insufficient_credits否请充值。正文包含 required 和 balance。
429rate_limited是,等待 retry_after_ms 后你超出了每分钟限制。
409request_in_progress是一个完全相同的幂等请求仍在运行。
422(幂等性冲突)否一个 Idempotency-Key 被以不同的正文重复使用。
503service_temporarily_unavailable / too_many_concurrent_requests是,配合退避临时性容量限制。
504result_timeout是上游抓取超出了 deadline_ms。
  • 使用指数退避重试 429 / 503 / 504 / 409。当存在 retry_after_ms 时,至少等待 那么长时间再重试。
  • 切勿重试 400 / 401 / 402 / 403 —— 在你修改请求之前,请求不会成功。
  • 官方 SDK 已经会为你重试临时性错误(默认 2 次重试),并在错误对象上暴露一个 retryable 标志。