首页/AI/AI 应用速查/API 常见错误码速查

API 常见错误码速查

排错看状态码定位大类:400 请求结构错;401 鉴权失败;403 权限/区域;404 模型或路径不存在;429 限流/配额;500/503 服务端故障(可重试)。

AI 应用速查AI更新于 2026-10-13

错误码怎么读

先用状态码定位大类,再读错误体里的具体原因:4xx 基本是请求侧问题,重试无用;429 是限流,需要退避;5xx 多为服务端临时故障,适合带退避重试。把这三类分流做对,排障时间能省掉大半。错误体通常包含错误类型与描述,程序里应该记录类型字段而不是只记状态码。

基本信息

4xx请求或鉴权问题,重试通常无效
429限流或额度耗尽,需退避后重试
5xx服务端异常,适合带退避重试
错误体含错误类型与描述,应记录到日志
排查顺序状态码、错误类型、请求体字段、模型名与版本
监控建议按错误类型分别计数与告警

常见状态码速查

状态码含义常见原因
400请求结构或参数错误字段名写错、必填缺失、模式不合法
401鉴权失败密钥无效、头名写错、格式不对
403无权限或区域限制模型未开通、区域不可用、额度受限
404路径或模型不存在接口路径写错、模型名不被支持
413请求体过大上下文或图片超出上限
429限流或配额耗尽并发过高、超速率上限、余额不足
500 与 502服务端异常或网关故障上游抖动,重试常可恢复
503服务暂不可用维护或过载,退避后重试

典型使用场景

  • 接入新平台:先跑通鉴权与一次最小请求排掉 4xx
  • 线上排障:按状态码分层,快速判断是请求问题还是上游问题
  • 重试策略:只对 429 与 5xx 重试,其余直接失败并告警
  • 容量规划:统计 429 出现频率,判断是否需要提高配额或削峰
  • 成本控制:余额不足类错误要提前告警,避免业务中断

分流处理的基本骨架

分流处理的基本骨架
def call_with_retry(fn, tries=4):
    for i in range(tries):
        try:
            return fn()
        except RateLimitError:            # 429:按退避等待后重试
            time.sleep(2 ** i + random.random())
        except APIStatusError as e:
            if e.status_code >= 500:      # 5xx:服务端抖动,可重试
                time.sleep(2 ** i)
            else:
                raise                      # 4xx:参数或鉴权问题,重试无意义
    raise RuntimeError("重试次数用尽")
同一个状态码在不同平台的含义可能略有差别:兼容端点与官方实现的错误类型划分不完全一致,接入时用真实错误各测一遍更可靠。
对 4xx 反复重试会把小问题放大成故障:一次请求变成多次,既消耗额度也可能触发限流,日志里还会出现大量重复报错。

易错点

  • 对 4xx 做重试:请求放大、额度被白白消耗,问题依然存在
  • 只记录状态码不记录错误类型:排查时无法区分是参数问题还是模型不可用
  • 把 429 当成服务故障处理:实际应做退避与削峰,而不是并发升级
  • 不做余额与配额告警:等到 429 或 403 大量出现时业务已经中断

数据来源与参考

  • OpenAI 错误码文档;RFC 9110 HTTP 语义

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌