AI API 错误排查:401、403、429 与 5xx

按鉴权、访问策略、限流、客户端取消与上游故障分层诊断 AI API 错误,并判断何时可以安全重试。

诊断 AI API 错误时,状态码只是调查入口,不是完整结论。重试前应保存请求 ID、UTC 时间、端点、模型、API Key 名称、所选分组、结构化错误与关键时序,先判断请求在哪一层被拒绝或中断。

常见层级包括客户端、鉴权、访问策略、协议校验、路由、模型后端以及下游连接。按顺序排查,能避免把 Key 权限问题误判为渠道故障,也能避免无边界重试继续增加成本。

常见状态码如何理解

状态码 优先判断 第一项动作
400 请求结构、字段或协议不合法 对照当前端点修正请求,不要原样重试
401 凭据缺失、格式错误、失效或过期 检查 Authorization Header 与当前 Key
403 已鉴权,但被账号、模型、分组、IP 或策略拒绝 先检查 Key 限制与访问范围
404 端点路径或模型标识不正确 核对 Base URL、路径和模型列表
429 请求速率、额度或可用路由达到限制 查明限制归属,再做有界退避或回退
499 下游客户端在完成前断开或取消 检查调用方超时、Abort、代理和首个有效输出
500 内部处理或适配失败 保留请求 ID,仅在重复执行安全时重试
502/503 上游响应异常、路由不可用或暂时容量不足 查看路由证据,有限次回退或重试
504 网关或上游时间预算耗尽 对比首输出、总耗时与各层 Deadline

具体请求仍应以错误体和请求记录为准。

401:先核对凭据

401 通常发生在有效模型路由之前。确认 Header 使用 Authorization: Bearer ...,没有引号、空格或占位值;Key 已启用且未过期;请求发往正确的 Modelflare Host;部署或 Secret Manager 没有继续使用轮换前的旧 Key。

不要把完整 Key 写进日志、工单或截图。如果怀疑泄露,应创建替代 Key、切换工作负载并撤销旧凭据。

403:优先看访问策略

鉴权成功并不代表请求一定能进入渠道。以下情况都可能在选择渠道前返回 403

  • Key 不允许请求的模型;
  • IP 白名单不包含 Modelflare 实际观察到的客户端 IP;
  • 账号无权使用目标模型分组;
  • 用户或 Key 已被策略禁用;
  • 所需能力不被该路由允许。

应使用同一 Key 获取 /v1/models,检查分组、模型限制和精确错误码。若请求尚未选中渠道,更换上游渠道无法修复前置策略拒绝。

429:避免制造重试风暴

429 是容量或策略信号,不是立即无限重试的指令。先确认限制来自 Key 额度、账号、模型分组还是具体路由。允许重试时,应遵循 Retry-After,使用带抖动的指数退避,限制尝试次数与总时长,并控制应用并发。

只有在回退分组仍支持同一模型和协议时才应使用回退。创建更多 Key 不一定能绕过账号级或分组级限制。

499:从调用方往外排查

Modelflare 在下游连接完成前结束时可记录 499。检查调用方是否触发 Abort,客户端、负载均衡、CDN 或反向代理是否达到空闲或总超时,用户是否停止任务,以及流中是否只有工具事件而没有可见文本。

单独一条 499 不能证明模型或渠道宕机。需要结合首个有效输出时间、取消时间、相同模型与分组的邻近请求一起判断。流式专项步骤见 AI API 流式指南

分层理解 5xx

  • 500 可能是确定性的内部适配问题,原样重试仍会失败。
  • 502 可能代表上游响应无效或不完整。
  • 503 可能代表没有可用路由或暂时不可用。
  • 504 说明某一层时间预算已耗尽,但仍需定位是哪一层。

保留原始状态和结构化错误,不要让客户端把所有失败统一改写成模糊的 500。

是否应该重试

失败类型 默认决策
请求或协议无效 修正请求,不原样重试
Key 无效或访问被拒 修正凭据或策略,不原样重试
额度耗尽 有意调整额度,不循环请求
限流 在允许时进行有界退避
暂时性 502/503/504 仅对可安全重复的操作进行有限次重试
客户端取消 只有用户仍需要且不会产生重复副作用时才重试
工具或写入副作用 先提供应用级幂等能力

每次重试都是新的工作,也可能产生新的费用。记录每一次尝试,不要让后来的成功掩盖最初错误。

安全保留哪些证据

建议记录请求 ID、UTC 时间、端点、流式模式、请求模型、所选分组、HTTP 状态、结构化错误码、总耗时、首个有效输出时间以及调用方是否取消。描述请求是否使用工具或图片即可,不要在普通日志中附带完整 Key、Prompt、响应正文、原始请求体、邮箱或明文 IP。

定位失败层后,可继续参考可靠的 AI API 路由设计回退。

常见问题

403 能证明供应商宕机吗?

不能。账号、Key、模型、分组、IP 或能力策略都可能在选择上游前返回 403,应先看请求记录和精确错误码。

499 是标准的上游模型错误吗?

不是。在 Modelflare 请求记录中,它表示完成前观察到下游取消,应先检查调用方与代理的时间预算。

所有 5xx 都应该重试吗?

不应该。只重试可安全重复的操作,限制次数和总时间,并保存第一次错误。确定性的适配或请求问题不会因重复而改善。