算汇开发者文档

错误处理与排查

按 HTTP 状态码排查 API 密钥、请求参数、余额、限流与上游服务错误。

本页内容

先记录 HTTP 状态码和响应中的错误消息,再按下面顺序排查。不要只截取“请求失败”一行,也不要把完整 API 密钥发给任何人。

常见状态码

状态码常见原因建议处理
400JSON 无效、缺少必填字段、参数不受模型支持对照接口文档缩减为最小请求,再逐项加回参数
401密钥缺失、错误、停用或过期检查 Bearer 请求头与密钥状态
402账户余额不足以完成请求前的额度预扣充值后再请求;余额不足是确定性错误,不要自动重试
403密钥无权使用目标模型,或密钥消费上限不足查询 /v1/models,并检查密钥的模型范围与消费上限
429请求频率超过账号的速率上限按响应头 Retry-After 等待后重试,并降低并发;详见下方“速率限制”
5xx平台或上游暂时异常保留时间、模型和错误消息,有限重试或切换备用模型

最小化排查法

  1. 用同一密钥请求 /v1/models,确认鉴权和网络正常;
  2. 将请求体缩减为 model 与一条 user 消息;
  3. 在控制台「在线体验」尝试同一模型;
  4. 检查账户余额、密钥有效期和消费上限;
  5. 记录请求时间、接口路径、模型、状态码和完整错误消息后联系支持。

速率限制

速率上限按账号计算,名下所有 API 密钥共用同一份配额——把调用拆到多把密钥不会提高总的请求速率。当前上限和已用比例显示在控制台概览。

账号自身的速率上限被触发时返回 429,并带上这些响应头:

响应头含义
Retry-After建议等待的秒数
X-RateLimit-Limit-Requests账号每分钟的请求上限
X-RateLimit-Remaining-Requests拒绝瞬间的剩余额度(固定为 0)
X-RateLimit-Reset-Requests额度恢复所需时间

官方 OpenAI SDK 会自动读取 Retry-After 并据此退避,通常无需自行处理。自建重试逻辑时优先读这个头,不要用固定的等待时间。

需要更高速率请通过获取支持联系我们,说明预期的每分钟请求数与业务场景。

是否应该重试

网络中断、超时、429 和部分 5xx 可以有限重试,并使用指数退避与随机抖动。请求参数错误、鉴权失败、余额不足等确定性问题,必须先修正原因,不应自动重试。

429 的正确重试方式是先检查是否有 Retry-After 头:有则等待相应秒数,无则按指数退避重试。固定间隔在低速率档位上会连续撞墙,因为那一档要等整个窗口结束才释放额度。