A 529overloaded_error来自 Claude 的 529 意味着 Anthropic 的 API 对你所请求的模型暂时没有容量。你的密钥、套餐和请求都没有问题,同样的请求通常几秒后就能通过。为了让应用撑过这段时间,先采用退避策略重试,然后把请求发给另一个提供同一 Claude 模型的提供商。
大多数人在 Claude Code 中遇到这个错误,会话会以API Error: Repeated 529 Overloaded errors结束。我们在重试示例中用本地模拟 API 模拟了过载,因为真实的过载无法按需触发。指南中的每个 OpenRouter 请求都是真实的。
简而言之
- A 529
overloaded_error意味着 Anthropic 的 API 在所有用户范围内对该模型都没有容量。429 才是由你自己的使用量导致的错误。 - 先采用带随机性的指数退避重试。Anthropic 的 SDK 和 Claude Code 已经这样做了。
- 当过载持续时,把同一模型发给另一个提供商。在 OpenRouter 上,Claude Sonnet、Opus 和 Haiku 5.5 各由五家提供商提供服务,默认路由会为你做故障转移。
- 对于所有提供商都繁忙的罕见情况,用以下方式列出一个回退模型
models。 - 在 Claude Code 中,运行
ori claude即可在 OpenRouter 上启动会话,获得同样的故障转移。
529 overloaded 是什么意思?
当 Anthropic 的 API 对某个模型的流量超出其服务能力时,会返回 529。响应体如下所示:
{"type":"error","error":{"type":"overloaded_error","message":"Overloaded"}}
这个错误与你无关。Anthropic 的错误参考文档指出,它发生在 API 所有用户整体流量很高的时候,因此当时调用该模型的任何人都可能遇到,无论他们使用什么套餐。一位 Max 套餐用户报告称 Claude Code 重试了超过八分钟才放弃。
真正来自你这边的错误是 429rate_limit_error。它意味着你的组织达到了自己的速率限制或支出上限,你可以通过放慢速度或提高限额来解决。529 不是你的使用量限制,Claude Code 的错误参考文档称它不计入你的配额。当 Anthropic 恢复容量时它就会消失,所以你要么等它过去,要么把请求发到当前有容量的地方。接下来的三步两者都做。
第 1 步:采用指数退避重试
大多数 529 会在几秒内清除,所以先从重试开始。每次尝试后多等一会儿,并加入一些随机性,这样许多客户端就不会都在同一时刻重试。我们把这个循环指向一个本地小服务器,它对前三次请求返回真实形态的 529,然后成功:
importrandom
importtime
importrequests
# 本地替身。生产环境中使用 https://api.anthropic.com/v1/messages
URL="http://127.0.0.1:8529/v1/messages"
defcall_with_backoff(body, attempts=5):
forattemptinrange(attempts):
r=requests.post(URL,json=body,timeout=60)
ifr.status_code!=529:
returnr
ifattempt==attempts-1:
r.raise_for_status()# 尝试次数用尽:立即失败,而不是再次休眠
wait=min(2**attempt,30)+random.uniform(0,1)
print(f"attempt{attempt+1}: 529{r.json()['error']['type']}, retrying in{wait:.1f}s")
time.sleep(wait)
r=call_with_backoff({
"model":"claude-sonnet-5-5",
"max_tokens":64,
"messages": [{"role":"user","content":"hi"}],
})
print(r.status_code, r.json()["content"][0]["text"])
attempt 1: 529 overloaded_error, retrying in 1.9s
attempt 2: 529 overloaded_error, retrying in 2.3s
attempt 3: 529 overloaded_error, retrying in 4.0s
200 Hello! How can I help you today?
第四次尝试成功了,距离第一次大约八秒。如果你使用 Anthropic 的官方 SDK,你已经拥有这个功能。它们会以指数退避重试 5xx 错误,默认重试两次,你可以通过max_retries提高这个次数。
重试可以覆盖短暂的尖峰。当模型持续过载数分钟时,它们帮不上忙,而且每次等待都会增加用户能感受到的延迟。为此,你需要第二个发送请求的地方。
第 2 步:将同一个模型发送到另一个提供商
Anthropic 的 API 并不是 Claude 运行的唯一地方。在 OpenRouter 上,Claude Sonnet 5.5 由五家提供商提供服务,Opus 5.5 和 Haiku 5.5 也是如此。以下是我们端点 API在 2026 年 10 月 21 日对 Sonnet 5.5 返回的结果:
| 提供商 | Slug | 每百万 token 输入价格 |
|---|---|---|
| Anthropic | anthropic | $2.00 |
| Amazon Bedrock | amazon-bedrock | $2.00 |
| Google Vertex AI | google-vertex | $2.00(全球),$2.20(美国或欧洲) |
| Azure | azure | $2.00(全球),$2.20(美国) |
| AWS 上的 Claude Platform | claude-on-aws | $2.00 |
向全球端点而不是 Anthropic 发送请求不会改变你为此支付的费用。不同提供商之间的延迟和正常运行时间仍可能不同,而且如何评估 LLM 提供商的性能展示了如何比较它们。
你无需配置任何内容即可使用它们。当你调用anthropic/claude-sonnet-5.5,我们的默认路由会将请求分散到为其提供服务的各个提供商,将过去 30 秒内出现严重故障的提供商降级处理,并在下一个提供商处重试失败的请求。
如果你想选择哪个提供商优先,请设置order:
importos
importrequests
body={
"model":"anthropic/claude-sonnet-5.5",
"provider": {
"order": ["anthropic","amazon-bedrock","google-vertex"],
"allow_fallbacks":True,
},
"messages": [{"role":"user","content":"Reply with the word ok."}],
"max_tokens":16,
}
r=requests.post(
"https://openrouter.ai/api/v1/chat/completions",
json=body,
timeout=120,
headers={"Authorization":f"Bearer{os.environ['OPENROUTER_API_KEY']}"},
)
data=r.json()
print(r.status_code, data["model"], data["provider"])
200 anthropic/claude-sonnet-5.5 Anthropic
Anthropic 作出了响应,因此没有发生故障转移。每个响应中的provider字段都会指明为其提供服务的提供商,因此你的日志会显示流量何时从 Anthropic 转移。设置order确实会关闭默认负载均衡。请求会遵循你的列表,而不是我们的健康排名,并且只有在你列出的提供商失败后,才会转向其余提供商。
有两个设置会阻止故障转移,如果你仍然看到 529 错误,值得检查一下:
"allow_fallbacks": false会将请求保留在你列出的提供商上。如果它们全部过载,你会收到该错误。"only": [...]会限制哪些提供商可以完全为该请求提供服务。如果它们中没有一个提供该模型,请求会在开始前就失败。
我们将only设置为["openai"]来看看这种失败是什么样子:
importjson
importos
importrequests
body={
"model":"anthropic/claude-sonnet-5.5",
"provider": {"only": ["openai"]},
"messages": [{"role":"user","content":"Reply with the word ok."}],
"max_tokens":16,
}
r=requests.post(
"https://openrouter.ai/api/v1/chat/completions",
json=body,
timeout=120,
headers={"Authorization":f"Bearer{os.environ['OPENROUTER_API_KEY']}"},
)
print(r.status_code)
print(json.dumps(r.json(),indent=2))
404
{
"error": {
"message": "所选模型没有可用的提供商。为 anthropic/claude-sonnet-5.5-20260928 提供服务的提供商有:google-vertex、amazon-bedrock、azure、claude-on-aws、anthropic,但你的请求中的 provider.only 偏好只允许:openai。
"code": 404,
"metadata": {
"available_providers": [
"google-vertex",
"amazon-bedrock",
"azure",
"claude-on-aws",
"anthropic"
],
"requested_providers": [
"openai"
],
"routing_funnel": [
{
"step": "初始端点",
"endpoint_count": 8
},
{
"step": "按区域附加费筛选",
"endpoint_count": 5
}
],
"failed_routing_step": "按允许的提供商筛选"
}
}
}
该错误列出了所有本可以服务该请求的提供商,因此你可以直接把需要的 slug 复制到你的only列表中。
第 3 步:添加一个回退模型
如果某个模型的所有提供商同时繁忙,例如在新版本发布后的需求高峰期间,可以让第二个模型代为应答。按顺序列出模型,使用models并以与第 2 步相同的方式发送请求:
body={
"models": ["anthropic/claude-sonnet-5.5","anthropic/claude-haiku-5.5"],
"provider": {
"order": ["anthropic","amazon-bedrock","google-vertex"],
"allow_fallbacks":True,
},
"messages": [{"role":"user","content":"Reply with the word ok."}],
"max_tokens":16,
}
200 anthropic/claude-sonnet-5.5 Anthropic
Sonnet 可用,因此由它应答。如果它在所有提供商处都失败了,我们就会把请求发给 Haiku 5.5,响应中的model字段会指明是它。模型回退会在第一个模型出现任何错误时触发,包括速率限制、宕机和上下文长度错误。如果列表中的最后一个模型也失败,你会收到它的错误。
选择一个对你的任务来说足够好的回退模型。像 Haiku 5.5 这样较小的模型适合短摘要或分类等常规工作,我们的最低成本推理指南介绍了如何找到仍能胜任工作的最便宜模型。对于只有较大模型才能处理好的工作,应依赖第二个提供商和重试,而不是较小的回退模型。
如何修复 Claude Code 中的 529 错误?
Claude Code 已经为你完成了第 1 步。它会以指数退避重试瞬时故障,最多 10 次,并且只有在这些重试耗尽后才会显示API Error: Repeated 529 Overloaded errors。你可以通过以下方式更改次数CLAUDE_CODE_MAX_RETRIES,但当模型持续繁忙时,更多重试只意味着更长的等待。无需任何配置的最快解决办法是运行/model并切换模型,因为 Anthropic 按模型分别跟踪容量。
要保留你选择的模型,可在 OpenRouter 上运行 Claude Code,这会增加第 2 步。最快的方式是Ori Harness,它会用已配置好的 OpenRouter 设置启动你机器上已有的 Claude Code:
curl-fsSLhttps://openrouter.ai/labs/ori/install.sh|bash
oriclaude--modelanthropic/claude-sonnet-5.5
Ori 会打开浏览器,让你用 OpenRouter 账户登录,因此无需创建或粘贴 API key。只有你用ori claude启动的会话才会在 OpenRouter 上运行,而普通的claude仍和以前一样工作。
如果想手动设置,请设置三个环境变量:
exportANTHROPIC_BASE_URL="https://openrouter.ai/api"
exportANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
exportANTHROPIC_API_KEY=""# 必须为空
如果你之前是用 Claude 账户登录的,请运行/logout一次并重新启动,使这些变量生效。我们的Claude Code 指南建议将 Anthropic 保留为首选提供商,因为 Claude Code 保证可与它配合使用。当 Anthropic 过载时,请求会故障转移到提供同一模型的其他提供商。
我们以这种方式在一个小型 bug 修复任务上运行了 Claude Code 九次,使用 Opus、Sonnet 和 Haiku 5.5,每个会话都完成了。使用 OpenRouter 的 Claude Code涵盖了其余设置,包括为每个角色选择模型。
常见问题
529 错误是我的问题吗?
不是。529 表示 Anthropic 的 API 对该模型在所有用户范围内已达到容量上限。你的 key、套餐和请求都没有问题。429 才是由你自己的使用量导致的错误。
Claude 529 会持续多久?
通常只有几秒,这就是带退避的重试能解决大多数此类错误的原因。在需求高峰期间,过载可能持续数分钟,这时把请求发送给其他提供商就有帮助。
付费套餐或更高层级能防止 529 错误吗?
不能。更高层级会提高你的速率限制,从而防止 429,但 529 来自该模型的总需求。从多个提供商提供该模型才能减少你受影响的程度。
如何检查 Claude 是否宕机?
Anthropic 会在以下地址发布事故信息status.claude.com,而旧的 status.anthropic.com 地址会重定向到那里。在 OpenRouter 上,每个模型的页面都会显示为其提供服务的每个提供商近期的正常运行时间,例如,Claude Sonnet 5.5。
后续步骤
- Ori Harness用一条命令即可在 OpenRouter 上运行 Claude Code 和其他智能体 CLI。
- 提供商路由涵盖
order,allow_fallbacks,only以及按价格或吞吐量排序。 - 模型回退列出了触发回退的条件以及如何对模型排序。
- 正常运行时间优化说明了我们如何追踪提供商健康状况。
- OpenRouter 故障转移与回退详解展示了提供商故障转移和模型回退如何协同工作。
- 在模型消失时保持你的智能体继续运行处理了这一问题的更长期版本,即模型被退役时的情况。