在线AI教程 / AI上云
[OpenRouter] Claude 529 过载:这意味着什么,以及怎么修
Claude 529 过载:这意味着什么,以及怎么修 OpenRouter ·10/28/2026 来自 Claude 的 529 overloaded error 意味着 Ant
Claude 529 过载:这意味着什么,以及怎么修
OpenRouter ·10/28/2026


来自 Claude 的 529 overloaded_error 意味着 Anthropic 的 API 对你请求的那个模型暂时没有余量。你的密钥、套餐和请求都没问题,同一个请求通常几秒后就能通过。要让应用扛过这种情况,先用退避重试,再把请求发给另一家提供同一个 Claude 模型的供应商。
多数人是在 Claude Code 里撞上这个错误的:会话会以 API Error: Repeated 529 Overloaded errors 中止。指南里的重试示例用一个本地替身来模拟过载,因为真实过载没法按需触发。指南中每一次 OpenRouter 请求都是真的。
速览
529 overloaded_error 意味着 Anthropic 的 API 对该模型在所有用户身上都已没有余量。429 才是来自你自己用量的错误。 先用指数退避加一点随机性重试。Anthropic 的 SDK 和 Claude Code 已经这么做了。 过载持续时,把同一个模型发给另一家供应商。在 OpenRouter 上,Claude Sonnet、Opus 和 Haiku 5.5 各由五家供应商提供服务,默认路由会自动替你故障转移。 万一每家供应商都在忙——这种情形很少见——可以用 models 列出一个后备模型。 在 Claude Code 里运行 ori claude,就能在 OpenRouter 上开启会话,并获得同样的故障转移能力。
529 过载是什么意思?
当 Anthropic 的 API 某个模型承受的流量超出它能提供的服务能力时,就会返回 529。响应体长这样:
{"type": "error", "error": {"type": "overloaded_error", "message": "Overloaded"}}
这个错误与你无关。Anthropic 的错误参考说,它发生在 API 对所有用户都有高流量的时候,所以那一刻调用该模型的任何人都会撞上,无论他们用的是哪个套餐。一位 Max 套餐用户报告说 Claude Code 重试了八分多钟才放弃。
真正来自你这一侧的错误是 429 rate_limit_error。它意味着你的组织触达了自己的速率上限或消费上限,办法是放慢请求速度,或者把上限调高。529 不是你的用量限制,Claude Code 的错误参考也说它不计入你的配额。等 Anthropic 恢复余量它就会消失,所以你要么等过去,要么把请求发到当下有余量的地方。接下来三步两件事都做得到。
第 1 步:用指数退避重试
大多数 529 几秒内就会消退,所以先从重试开始。每次尝试之后多等一会儿,再加一点随机性,免得大量客户端在同一时刻一起重试。我们把这个循环指向一个小型本地服务器:前三个请求返回一个形态真实的 529,之后就成功:
import random import time import requests
The local stand-in. In production, use
URL = "http://127.0.0.1:8529/v1/messages"
def call_with_backoff(body, attempts=5): for attempt in range(attempts): r = requests.post(URL, json=body, timeout=60) if r.status_code != 529: return r if attempt == attempts - 1: r.raise_for_status() # out of attempts: fail now instead of sleeping again 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 调高。
重试能扛住短时尖峰。但如果模型持续过载好几分钟,重试就无能为力了,而且每次等待都会增加用户能感知到的 latency。那种情况需要第二个去处来承接请求。
第 2 步:把同一个模型发给另一家供应商
Claude 不只跑在 Anthropic 的 API 上。在 OpenRouter 上,Claude Sonnet 5.5 由五家供应商提供服务,Opus 5.5 和 Haiku 5.5 同样如此。以下是我们的 endpoints API 在 2026 年 10 月 21 日为 Sonnet 5.5 返回的结果:
供应商Slug每百万 token 的输入价格 Anthropicanthropic$2.00 Amazon Bedrockamazon-bedrock$2.00 Google Vertex AIgoogle-vertex$2.00(全球),$2.20(美国或欧洲) Azureazure$2.00(全球),$2.20(美国) Claude Platform on AWSclaude-on-aws$2.00
把请求发到全局端点而不是 Anthropic,不会改变你的付费。latency 和可用性在不同供应商之间仍可能不同,如何评估 LLM 供应商性能一文介绍了比较方法。
用它们不需要任何配置。当你调用 anthropic/claude-sonnet-5.5 时,我们的默认路由会把请求分散到提供该模型的各供应商上,把过去 30 秒内出现过明显故障的供应商降权,并在下一个供应商处重试失败的请求。
如果你想指定哪一家供应商优先,设置 order:
import os
import requests
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"],看看这种失败长什么样:
import json import os
import requests
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": "No allowed providers are available for the selected model. Providers serving anthropic/claude-sonnet-5.5-20260928: google-vertex, amazon-bedrock, azure, claude-on-aws, anthropic, but your request's provider.only preference permits only: openai.", "code": 404, "metadata": { "available_providers": [ "google-vertex", "amazon-bedrock", "azure", "claude-on-aws", "anthropic" ], "requested_providers": [ "openai" ], "routing_funnel": [ { "step": "Initial Endpoints", "endpoint_count": 8 }, { "step": "Filter by Regional Surcharge", "endpoint_count": 5 } ], "failed_routing_step": "Filter by Allowed Providers" } } }
这个错误会列出所有本可以承接该请求的供应商,你可以把需要的 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 -fsSL | bash ori claude --model anthropic/claude-sonnet-5.5
Ori 会打开浏览器,让你用 OpenRouter 账号登录,因此不用创建或粘贴 API key。只有你用 ori claude 启动的会话会跑在 OpenRouter 上,直接用 claude 则和以前一样。
如果想手动设置,就设置三个环境变量:
export ANTHROPIC_BASE_URL="https://openrouter.ai/api" export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY" export ANTHROPIC_API_KEY="" # must be empty
如果你之前是用 Claude 账号登录的,运行一次 /logout 然后重新启动,让这些变量生效。我们的 Claude Code 指南建议把 Anthropic 保留为优先级最高的供应商,因为 Claude Code 保证能与之配合工作。当 Anthropic 过载时,请求会故障转移到提供同一模型的其他供应商。
我们用这种方式在一个小型缺陷修复任务上跑了九次 Claude Code,分别用 Opus、Sonnet 和 Haiku 5.5,每次会话都正常完成。Claude Code with OpenRouter一文讲了其余的设置,包括为每个角色挑选模型。
常见问题
529 错误是我的问题吗?
不是。529 意味着 Anthropic 的 API 对该模型在所有用户身上都已满负荷。你的密钥、套餐和请求都没问题。429 才是你自己用量导致的错误。
Claude 的 529 会持续多久?
通常只有几秒,所以带退避的重试能解决大多数。需求高峰时,过载可能持续几分钟,这时把请求发给另一家供应商就管用了。
付费套餐或更高档位能避免 529 错误吗?
不能。更高档位提高的是你的速率上限,能避免 429,但 529 来自该模型的整体需求。让模型由多家供应商共同提供,才是降低你受影响程度的办法。
我怎么判断 Claude 是否宕机?
Anthropic 会在 status.claude.com 上发布事故通报,旧的 status.anthropic.com 地址会重定向到那里。在 OpenRouter 上,每个模型的页面都会显示提供该模型的各家供应商近期的可用率,例如 Claude Sonnet 5.5。
后续步骤
Ori Harness 用一条命令就能在 OpenRouter 上运行 Claude Code 和其他 agent CLI。 供应商路由讲到了 order、allow_fallbacks、only,以及按价格或 throughput 排序。 模型后备列出了哪些情况会触发后备,以及如何排列模型顺序。 可用性优化解释了我们如何跟踪供应商的健康状况。 OpenRouter 故障转移与后备详解展示了供应商故障转移与模型后备如何协同工作。 模型消失时让 agent 继续运行处理的是这个问题的长期版本——模型被下线的时候。