故障排查 · 三种报错判别

529、429、Weekly Limit
三个报错,三种根因,三种对策

同样是「额度用完」的感觉,529、429 和 weekly limit 根因完全不同——分不清会白白重试几个小时,还可能因为频繁重试被判定为滥用。

#529 Overloaded#429 rate_limit_error#weekly limit#重试策略

三个报错,三种恢复路径

529

Overloaded(上游过载)

Anthropic 服务端整体容量紧张,与你的请求内容、prompt 长度都无关;可以重试,建议指数退避。

429

rate_limit_error(你被限流)

你自己的请求速率或并发超过了账号/组织的限额;降低并发或拉长请求间隔后即可恢复。

Weekly

"You've hit your weekly limit"

不是限流,是账号周额度用尽;retry 没有意义,只能等下一次周重置,或临时提额。

最长 7 天

三者恢复时间天差地别

529 通常秒级到分钟级消退,429 退避几十秒即可继续,weekly 限额要等到账号下一个自然周重置。

三个报错分别在说什么

529(Overloaded)来自服务端,是 Anthropic API 在整体负载过高时返回的状态,错误体里 type 字段是 overloaded_error;它和你的请求内容、token 数、模型选择都无关,重试通常能成功,但要用指数退避而不是立刻重试,否则你自己会制造出更多请求加重拥塞。429 状态码的错误体 type 是 rate_limit_error,意味着你自己的调用速率、并发数或 tokens-per-minute 超过了账号或组织的限额;这是你这边可以直接调的参数——降低并发、加长轮询间隔,或者向上申请提额。Weekly limit 完全不同:它不是 HTTP 层面的限流,而是 Claude Code/订阅套餐层面的账号级配额,报错文案里会出现 "You've hit your weekly limit" 这句原文,说明这一整个计费周期内的额度已经用完,任何形式的重试都不会成功,只能等待官方按订阅周期重置,或者临时购买/开通额外额度。

为什么这个区分最近更重要

Anthropic 在 2026-08-18 宣布把周额度 +50% 的临时加成延长到 2026-08-31,大量账号在这段时间实际可用额度会比平时更宽——这也意味着一旦 08-31 之后加成到期,原本没怎么撞过 weekly limit 的账号可能第一次在这个错误上栽跟头。把它和 529/429 弄混,最常见的后果是对着一个账号级配额问题猛按重试,不仅没用,过于密集的重试还可能被判定为异常调用模式。

时间线

长期存在

529/429 是 Anthropic API 标准状态码,随 API 一直存在,公开文档与开发者讨论长期稳定描述其含义。

2026-08-18

Anthropic 官方宣布周额度 +50% 临时加成延长至 2026-08-31,短期内掩盖了部分账号原本会撞到的 weekly limit。

2026-08-31 之后

临时加成到期,是否延续官方尚未说明;此前少撞 weekly limit 的账号需要重新留意这条报错。

已确认 vs 常见误解

已确认

三个错误体里的 type 字段(overloaded_error / rate_limit_error)和 Claude Code CLI 里 "You've hit your weekly limit" 这句报错原文,在公开的开发者讨论与 Anthropic 官方文档描述里长期稳定出现,是判别根因最可靠的依据。

常见误解

网上常见的说法是「529 多试几次就会自动降级到更便宜的模型」——我们没有找到官方说明或成规模的一手证据支持这个说法。529 只代表容量紧张,并不代表请求被路由到了别的模型;把重试次数当成换模型的手段并不可靠。

该怎么应对:三条完全不同的路

529 / 429:客户端能自己解决

529 用指数退避重试(1s→2s→4s…,加一点抖动);429 除了退避,还要看错误体里有没有 retry-after,并考虑降低并发数或申请提额。两者都不需要联系人工支持,大多数 SDK 的默认重试策略已经覆盖了这两种情况。

Weekly limit:客户端解决不了

报错原文出现 "You've hit your weekly limit" 时,唯一有效的动作是查看账号里显示的重置时间,或者切换到额度未用尽的其它模型/服务商过渡。通过 QCode 用同一把 key 切到其它厂商模型,是不用等重置就能继续交付的办法。

三步判别法

第一步看 HTTP 状态码:529 还是 429,还是压根没有状态码只有一段文案。第二步看错误体的 type 字段(HTTP 层面的两种)或报错文案原文(weekly limit 是账号层面的,通常不带标准 HTTP 错误体,而是 CLI/网页给出的提示文案)。第三步看你的仪表盘:如果显示当前周期额度已经归零、重置时间是几天后,基本可以确认是 weekly limit,而不是临时的服务端抖动。

在 QCode 上怎么办

无论撞到哪一个,QCode 的一把密钥都能把请求路由到 Claude 之外的模型家族(GPT、Gemini、GLM、Kimi、DeepSeek、Qwen 等)作为过渡,不需要等 529 消退或 weekly limit 重置就能继续交付。

常见问题

529 和 503 是一回事吗?

不完全是。529 是 Anthropic API 特有的「服务过载」状态,503 更常见于通用网关/负载均衡层的「服务不可用」。两者都应该重试,但 529 通常特指模型服务本身的容量问题。

429 和 weekly limit 都是「限额」,有什么本质区别?

429 是速率/并发限制,是一个滑动窗口内的瞬时限流,退避几十秒到几分钟通常就能恢复;weekly limit 是订阅套餐在一个自然周期内的总量配额,一旦用尽要等到官方设定的重置时间,不会因为你放慢速率而提前恢复。

收到 529 该不该换更小的模型重试?

不需要。529 与模型大小、参数无关,是服务端整体容量问题;换模型可能只是恰好命中了负载较轻的容量池,不是可靠的解决办法。真正有效的是指数退避重试。

我怎么知道自己撞到的是 429 还是 weekly limit?

看报错文案和错误体。429 一般伴随标准的 HTTP 错误体和 type: rate_limit_error;weekly limit 通常直接是一句提示文案 "You've hit your weekly limit",并且仪表盘会显示本周期额度已耗尽、重置时间是数天后而不是数分钟后。

退避重试应该等多久?

常见做法是从 1 秒起步,每次失败后翻倍(1s、2s、4s、8s…),加一点随机抖动避免多个请求同时重试造成新的峰值;大多数官方 SDK 已经内置了这个策略,自己写重试逻辑时照抄这个模式就够用。

weekly limit 快到时,有什么办法能提前应对?

在账号仪表盘里盯着周期内的剩余额度趋势,预判什么时候会耗尽;临时性的解法是把非核心任务切到 QCode 上的其它模型家族过渡,核心任务留给还有额度的 Claude。

信息来源

错误码与错误体字段(type: overloaded_error / rate_limit_error)来自 Anthropic API 公开文档对状态码的描述;"You've hit your weekly limit" 的报错原文来自 Claude Code 用户在公开渠道分享的截图与讨论;周额度 +50% 加成延长至 2026-08-31 的口径来自 Anthropic 官方账号 2026-08-18 的公告。本页内容于 2026-08-27 核对。

额度打结时,别让一个账号卡住交付

一把 QCode 密钥切到 GPT、Gemini、GLM、Kimi、DeepSeek 等模型,不用等 529 消退或 weekly limit 重置。