529 是唯一一个不是由你的代码造成的 Claude 错误:Anthropic 自身过载。你无法修复它,只能优雅地吸收影响。这意味着耐心重试、准备备用模型,并且绝不能用即时重试风暴放大事故。
错误
响应(HTTP 529)
{
"type": "error",
"error": { "type": "overloaded_error",
"message": "Overloaded" }
}原因和解决方法一览
| 原因 | 解决方法 |
|---|---|
| 提供商侧饱和(发布日、区域性事故) | 使用带抖动的退避;检查提供商状态页,而不是重新部署应用。 |
| 你的突发流量恰好落在软故障期间 | 分散批处理任务;通常延迟 10 分钟即可恢复。 |
像合格的客户端一样重试
将 529 视为没有 retry-after 的 429:从约 2 秒开始指数退避,加入抖动,将上限设为 30–60 秒,约 5 次尝试后放弃并将任务排队。我们的 429 指南中的退避代码片段在同一分支处理 529。
切换故障转移,而不是降低服务质量
对于延迟敏感的路径,定义备用方案:同一家族(Sonnet → Haiku)可保持行为接近;跨提供商(Claude → GPT)可应对整个提供商的故障。在 OpenAI 兼容端点上,只需修改一个字符串:
failover.py
PREFERRED = ["claude-sonnet-5", "claude-haiku-4-5", "gpt-5-6-terra"]
def complete(messages):
last = None
for model in PREFERRED:
try:
return client.chat.completions.create(
model=model, messages=messages, max_tokens=800)
except APIStatusError as e:
if e.status_code not in (429, 500, 529):
raise
last = e # saturated — try the next tier
raise last如果你通过 Kunavo 调用
Kunavo 会通过多个上游路径路由 Claude,其多模型目录支持在同一个密钥和钱包上通过修改模型字符串实现跨提供商故障转移——上述故障转移模式无需第二个账户。到达你的 529 仍然绝不会产生费用。 容量和价格是两个不同的问题;关于后者,各模型费率请参见 Anthropic Claude API 价格列表.
常见问题
529 是我的错吗?
不是。这是提供商侧容量问题。你唯一需要负责的是不要放大影响(退避、抖动),并在事故超过你的延迟预算时准备好故障转移目标。
529 与 429——有什么区别?
429 表示你超出了限制(服务器正常);529 表示服务器自身过载(你的配额正常)。两者都可以重试;只有 429 会附带 retry-after 提示。