API 报错怎么查:区分认证、限流与网关超时

适用于模型 API 调用失败、超时或收到 200 却没有完整结果。按失败层次、服务方错误类型和最少元信息定位问题,再做一次有边界的复查。

内容更新 2026-07-26

先看结论

状态码只是线索:先确认谁返回、失败在哪一层,再区分配置错误、额度限制和临时故障;不要一见报错就换 Key 或重发。

确认现象

  • 没有 HTTP 状态码,只看到 DNS、TLS、连接或本地超时错误。
  • 返回 401、403、404 或 429,重复提交仍然失败。
  • 返回 503、522、524,或流式输出中途停止。
  • HTTP 200 已返回,但内容不是预期 API 结构、流式事件报错,或下游渠道没有收到消息。

可能原因

  • 客户端错误与服务端响应不同:命令参数、运行环境、DNS、TLS 或本地超时可能让请求未到达 API。服务侧没有记录只是线索,也可能是查错账户、筛选条件或记录延迟。
  • 认证回答“这是谁发的请求”,权限回答“该身份能做什么”。Key 的签发方、目标地址和认证字段必须配套;订阅登录与 API Key 的规则不能互换。
  • 接口路径、请求结构和模型 ID 是三个检查项。模型目录能读取,不表示生成接口、指定模型、额度和工具调用都正常。
  • 网关是客户端与模型服务之间的转发层。各层都可能返回状态码;必须结合具体服务的 error.code/type、请求时间和脱敏元信息判断。

按顺序排查

  1. 先暂停自动任务和外层重试,记录工具及版本、操作系统、认证类型、失败时间与时区、状态码和并发数。不要收集真实 Key、认证头、完整配置或原始请求/响应体。
  2. 没有 HTTP 状态码:先核对本机错误类别、公开入口域名、系统时间及经管理员认可的网络设置;把证书、代理和客户端依赖问题交给对应负责人,不关闭证书校验或防火墙。
  3. 有状态码:在自己有权限的服务控制台只查看该次请求的状态、协议/路径类别、模型、耗时、错误分类和费用元信息。对外使用白名单摘要,错误 message 可能含输入或凭据,不直接粘贴。
  4. 按下方对照表选一条最小修复。401/403 先查认证或权限;404 查路径和资源;429 先分频率与资金/用量;503/522/524 先分故障层次,不自动轮询多个模型。
  5. 重试仅限已经识别的临时故障。先确认 SDK 是否内置重试;人工复查至多追加一次,遵守 Retry-After,且确认不会重复扣费、发送消息或创建业务对象。资金、额度和权限问题先处理原因,不靠等待重发。
  6. 需要生成复查时,沿用 /article/1a1api-integration#minimum-test 的虚构 hi 请求和费用确认流程,只改一个变量。先验收 API 的完整结果与用量记录,再单独检查 Agent、Gateway 和消息渠道,不把第一层成功当全链路通过。

命令与示例

{
  "example": "fictional_support_summary",
  "client": "ExampleClient 1.0",
  "timeWithZone": "2026-08-01T10:30:00+08:00",
  "authType": "third_party_api_key",
  "httpStatus": 429,
  "errorCode": "rate_limit_exceeded",
  "concurrency": 1,
  "action": "pause_and_check_retry_policy"
}

仍未解决

  • 无法确定是谁返回错误:保留最少元信息,交给服务支持或网络管理员;不要把“暂时查不到请求”写成已证明服务故障。
  • 怀疑凭据泄露时,先到签发方撤销并替换,再检查授权用量;不要为了排错把旧 Key 发给 AI。具体凭据边界见 /article/api-key-basics。
  • 持续临时故障:暂停任务并保留队列,不自动切换另一供应商。换模型或供应商前需重新确认能力、权限、数据接收方和费用,避免重复执行。
  • 1A1API 分流入口:https://help.1a1api.top/troubleshooting;Codex:https://help.1a1api.top/codex;Claude Code:https://help.1a1api.top/claude-code;其他工具从 https://help.1a1api.top/ 选择对应说明。

适合谁看

  • 客户端调用模型失败,需要判断先查本机、凭据还是服务方。
  • 同一次任务先显示连接成功,随后报错或没有完整文本。
  • 准备向技术支持说明问题,但不希望泄露凭据和业务内容。

只准备能定位问题的元信息

  • 在本机核对服务签发方、认证类型、公开域名和客户端版本;不要提供 Key 的头尾片段、Cookie、环境变量值或整份配置。
  • 对外记录公共错误类别、HTTP 状态、并发数、时间与时区。请求 ID 只通过授权支持渠道提供;含内部标识时用占位符。
  • 这里只需阅读已存在的脱敏元信息,无须安装 curl 或再发请求。https://1a1api.top/v1/models 属于带认证的模型列表入口,不是公开健康探针,也不能证明生成调用成功。

按证据选择最小修复

现象先核对的证据最小处理与复查
401Key 是否属于该服务;认证字段是否发送;项目/组织与有效期是否匹配修正一项配置或授权选择后再试;不默认重新生成 Key。
403服务给出的权限或策略原因;模型/接口授权;组织规则由有权限的人确认是否允许。地域或账号限制按平台规则处理,不绕过。
404最终路径有无重复 /v1;请求是否采用正确协议;模型/资源是否存在且可访问按该客户端版本文档修正路径或资源标识。不要给所有客户端统一补 /v1。
429rate limit、余额耗尽、用量或 spend limit 的具体错误类型频率限制才退避;余额/用量/硬限额先人工处理,不自动充值或抬限额。
503是否为网关维护或上游过载;Retry-After;相同时间的服务说明停止批量任务,等待后最多追加一次小请求;切模型不是默认第一步。
522(Cloudflare)是否确实由 Cloudflare 返回;源站连接及确认超时信息可能在 TCP 建立前,也可能建立后等不到源站确认;由服务方查源站,不凭状态码重装客户端。
524(Cloudflare)源站连接已建立;读响应或写请求是否超时由服务方核对超时边界;长任务可另拟较短请求,但先确认原请求是否已执行或计费。
200 后失败完整 JSON / 流式终止事件、错误事件、客户端处理和业务结果200 只描述响应开始/状态;逐层确认结构、正常结束及所需输出,不能仅凭 200 验收。

429 不总是“等一会儿”

OpenAI 区分余额耗尽、组织用量、组织/项目硬限额和请求速率。Spend alert 只提醒,启用硬限额才会阻断适用请求;传播有延迟,不承诺分毫不超。Claude API 的错误分类也不同,不能只用一张 HTTP 对照表跨服务下结论。

  • OpenAI 的 credit_balance_exhausted、organization_spend_limit_exceeded、project_spend_limit_exceeded 等应先交由账户负责人处理;不要把重试当恢复方案。
  • 临时限流/过载可按服务方 Retry-After 等待,并设置次数与总时长上限;SDK 已重试时,不要再套一层无限循环。
  • 超时不等于未执行。对发信、交易或写业务数据的 Agent,先查业务结果或幂等机制,再由人决定是否重试。
  • 额度与并发的主要解释见 /article/rate-quota-concurrency;不要从本篇静态文本推断当前账户可用金额。

怎样确认这次修复有效

  • 能说明错误来自本机、API 服务、网关还是后续业务渠道,并写出对应证据;证据不足时明确保留待确认。
  • 只改了一个已识别问题,且知道如何恢复原设置;没有额外放宽权限。
  • 经人工同意的最小请求得到该协议的正常结束和所需输出;HTTP 200、模型列表和一行“success”均不是单独验收依据。
  • 能在授权范围内核对该次请求/用量元信息;真实业务动作仍须单独验收,未经确认不执行。

给支持人员的排查摘要

按字段手工整理白名单摘要;不要附原始响应、请求体、完整日志或配置。下面全部是占位模板。

工具与版本:<名称、版本、操作系统>
接入方式:<订阅登录 / 官方 API Key / 第三方 API Key>
服务公开域名:<无查询参数、无内部地址>
协议与路径类别:<Chat Completions / Responses / Messages>
失败时间与时区:<时间>
HTTP 状态与公共错误代码:<状态、error.code/type;不贴 message>
并发与重试:<数量、是否由 SDK 重试>
已查到的层次:<本机 / API / 网关 / 业务渠道 / 尚不确定>
已改变的一项设置:<只写字段名和变化类别,不写秘密>

请提出证据最少、影响最小的检查,并分别说明修改与验收。
不要索取凭据、Key 片段、原始请求、客户内容或完整日志。

这些推断容易误导修复

  • “有余额就不会 429”:频率、用量和显式硬限额可能分别生效。
  • “所有 503 都应该换模型”:先确认返回层和服务信息;换模型可能改变费用与能力。
  • “522 一定没连上,524 一定是模型慢”:这不是跨网关通用语义,Cloudflare 自身也区分连接确认、读与写超时。
  • “请求列表成功,所以机器人正常”:API、Gateway 与 Telegram 等渠道是不同验收对象。

错误分类与协议依据