Claude API 报 529 或 429?先分清过载、额度和认证问题

Claude API 返回 529、429、401 或超时时,先核对错误类型、服务地址和额度。了解 SDK 重试、流式中断与回退的边界,避免把持续故障变成无限重试。

Claude API 报 529 或 429?先分清过载、额度和认证问题

Claude 的 529 overloaded_error 表示 API 暂时过载;429 则可能涉及速率或费用上限,需要按错误正文分别处理。 先保存状态码、错误类型、时间和 request ID,再查服务状态与已发生的重试,不要一看到失败就加循环。

本文于 2026 年 9 月 9 日核对 Anthropic 官方错误文档。第三方网关可能使用不同状态码,直连 API、云平台与网关要分别确认,聊天订阅也不能替代 API 组织额度。

按错误类型选择下一步

状态码官方类型先检查什么
400invalid_request_error请求内容、格式;也可能涉及组织或工作区费用上限
401authentication_error凭证是否有效,是否属于正在调用的服务
402billing_error账单或支付信息
403permission_error组织、工作区和资源权限
404not_found_error端点路径和资源 ID
413request_too_large请求字节大小;Messages API 上限为 32 MB
429rate_limit_error速率、使用层级月度费用上限或 Claude Code 工作区费用上限
500api_error临时内部错误,按预算重试
504timeout_error请求耗时,长任务是否需要流式处理
529overloaded_error暂时过载、状态页、重试截止时间

401 不等于 403,429 也不一定是每分钟请求太多。官方说明,费用上限导致的 429 可能没有 retry-after,在权限或额度恢复前持续失败。不要把所有 429 都解释成等一秒就好。

529 一直重试,先查已经试了多少次

查看 Claude 状态页,对照自身日志的时间、型号和服务路径。一次 529 不能证明所有地区、模型和用户都不可用;状态页暂时没有事件也不足以排除问题。

官方 SDK 对临时失败有自动重试,默认重试两次,加上最初请求最多三次尝试。具体行为以部署版本为准,先检查 最大重试次数设置,再决定是否增加应用层重试。外面再套循环,可能把总次数和等待时间成倍增加。

设置整个任务的截止时间。交互式编辑器与夜间批处理能接受的等待不同,没有“第四次必须切模型”或“所有事故五分钟恢复”的通用规则。详见429 重试判断

流式返回 200,不等于整次成功

官方文档指出,SSE 流可以在 HTTP 200 之后出现错误。客户端需要处理流中的 error 和未完成输出,而不是只看最初状态码。

如果已经展示部分文字或执行工具动作,整次重跑可能造成重复输出或重复副作用。记录完成状态,判断哪些操作能安全重试;不要把重跑的文本静默接到半段旧答案后。

认证、连接和额度分别处理

确认 Key 属于实际请求的服务,使用该端点要求的认证方式。不要混用 OpenAI 兼容端点的 Bearer 与 Anthropic 原生端点的凭证配置,也不要打印完整密钥来确认环境变量。

证书或网络错误可能发生在 API 返回之前,此时不能假设已经收到 Anthropic 的 529。自定义模型加载失败,应先看客户端配置,例如 OpenCode 自定义 provider

Gemini 生图的 free-tier limit: 0 是另一个具体额度场景,可看按 quotaMetric 排查零额度,不要直接套用 Claude 的错误类型。

回退模型需要哪些前提?

回退目标应已验证任务、协议、工具调用、上下文和输出格式,并确认当前能访问。另一个 Claude 型号不代表独立容量;其他厂商也可能有不兼容参数或不同收费。

共享 API 格式不能证明网关会自动跨供应商回退,更不能保证固定毫秒数恢复。查看具体路由文档和请求日志,明确成功条件。预算用尽后,向用户显示清楚的临时失败或排队状态,比无限重试更可控。

持续失败时,把 request ID、时间、准确型号和最小复现通过支持渠道提交。避免夹带密钥和不必要的私人提示内容。修复认证、权限或费用上限后,再验证请求是否恢复,别把一切都归因于过载。

常见问题

Claude 529 和 429 有什么区别?
529 表示 API 暂时过载。429 可能是速率限制、使用层级月度费用上限或 Claude Code 工作区费用上限,需读错误正文与重试头。
529 应该无限重试吗?
不应。先检查 SDK 已有重试,再设置总截止时间。预算用尽后报临时失败、排队或使用已验证的回退。
402 一定是第三方网关自定义的吗?
不是。当前 Anthropic 官方文档列出 402 billing_error,表示账单或支付信息问题;网关的具体含义仍以自身文档为准。
HTTP 200 代表流式请求成功吗?
不一定。SSE 可以在返回 200 后中断或报错,要检查流内错误和完成状态,避免重试产生重复副作用。