所有文章
AIClaudeOpenAI

Claude Code 429 限流怎么办?别慌,一张表分清额度、限流和 Codex 的 429

Claude Code 报 429,可能是 Pro/Max 额度用完、API key 被限流,也可能是每月消费上限,办法各不相同。提示原文、该看哪些响应头、Claude Code 会自动重试什么,以及 Codex 怎么区分限流和 insufficient_quota。

Claude Code 429 限流:浅蓝色闸机前排着三颗小玻璃球,旁边是一个浅绿色沙漏

遇到 Claude Code 429 限流,先别急着重试,要先弄清楚是哪一种限制。用 Pro 或 Max 订阅的话,多半是 5 小时会话额度或者每周额度用完了,Claude Code 会提示“You’ve hit your session limit”,后面带着重置时间。用 API key 的话,是你的 key 或组织触发了速率限制,提示是“Request rejected (429)”。Codex 也一样,429 背后可能是 ChatGPT 套餐额度用完、短时间请求太多,或者 API 余额不够。下面把两个工具的 429 提示原文、该看哪些响应头、每种情况怎么办整理成一份速查表,内容都来自官方文档或工具自己的源码,链接都放在正文里。

Claude Code 429 限流到底是什么意思

HTTP 429 的意思是“请求太多”。在 Claude API 里,它对应的错误类型是 rate_limit_error。Claude API 错误文档列了三种原因:组织触发了速率限制,达到了所在等级的每月消费上限,或者达到了 Claude Code 工作区的消费上限。

对大多数人来说,Claude Code 还有一个更常见的来源,就是订阅额度。用 Pro 或 Max 账号登录时,你有一个 5 小时会话额度和一个每周额度。Anthropic 的Pro 和 Max 帮助文章写明,这些额度由 Claude 和 Claude Code 共用。额度用完后,服务器返回的 429 会带上套餐的额度响应头,Claude Code 再把它翻译成一句能看懂的提示。

Claude API 文档截图:Claude Code 429 限流对应 rate_limit_error,消费上限的 429 没有 retry-after

429 限流的几种提示和对应办法

下面这些提示都出自 Claude Code 错误参考文档,我按背后的原因分了组。

提示原文背后的原因怎么办
You’ve hit your session limit · resets 3:45pmPro 或 Max 的 5 小时会话额度用完等到提示里的重置时间,或者用额外用量
You’ve hit your weekly limit · resets Mon 12:00am每周额度用完同上,但可能要等好几天
You’ve hit your Opus limit / Sonnet limit某一个模型系列的额度用完用 /model 换到其他系列的模型
Request rejected (429)API key、Amazon Bedrock 或 Google Cloud 项目的速率限制运行 /status,检查账户等级,少开几个并行代理
Server is temporarily limiting requests (not your usage limit)Anthropic 那边的短时限流稍等一下再发

文档里有几个细节容易被忽略。会话额度和每周额度是所有模型共用的,所以这两种情况下 /model 没用;Opus 和 Sonnet 的系列额度只管各自的模型。/usage 可以看额度和重置时间,/usage-credits 可以在 Pro 和 Max 上购买额外用量。如果不想守着等重置,Claude Code v2.1.234 及以后的版本可以在当前会话里等额度重置后自动继续,命令行的开关在 /config 里,叫“Continue automatically at usage limit”。

我见得最多的坑,是明明开了订阅,却报“Request rejected (429)”。文档直接点明了原因:环境里多出来的 ANTHROPIC_API_KEY 会让请求走一个低等级的 key,而不是走你的订阅。运行 /status 看一下当前用的是哪个凭据,不是你想用的就把这个变量删掉。

429 以外的 Claude Code 报错,我在 Claude Code 常见报错和解决办法里整理过。会话额度和每周额度怎么计算,可以看 Claude 额度是怎么算的。

429 限流和 Codex 429 的提示原文、意思和处理办法

遇到 429 时看哪些响应头

如果你自己调用 API,或者在 Claude Code 里用 API key,想知道离限制还有多远,响应头比错误信息有用得多。Claude 速率限制文档列出了这些响应头:

响应头含义
retry-after要等多少秒再重试。不是每个 429 都有,消费上限触发的 429 一定没有
anthropic-ratelimit-requests-remaining触发限制前还能发多少个请求
anthropic-ratelimit-tokens-remaining当前最严格那条限制下还剩多少 token,按千取整
anthropic-ratelimit-input-tokens-remaining / -output-tokens-remaining输入和输出 token 各剩多少
anthropic-ratelimit-*-reset这条限制完全恢复的时间,格式是 RFC 3339

这些限制有两点值得了解。第一,API 用的是令牌桶算法,额度是持续回填的,不是到某个固定时间一次性重置。第二,限制按每个模型类别的每分钟请求数、每分钟输入 token 数和每分钟输出 token 数分别计算,所以请求不多的时候,也可能因为 token 太多触发 429。你可以在 Claude Console 的速率限制页面看到自己组织的限制。

等待没用的情况是消费上限。每个等级都有每月上限,Start 是 500 美元,Build 是 1,000 美元,Scale 是 200,000 美元,达到后 API 会暂停到下个月 1 号 00:00 UTC,也就是北京时间 1 号早上 8 点。这时返回的仍然是 429 rate_limit_error,但没有 retry-after 响应头,错误代码是 enforced_spend_limit_reached。在恢复之前,怎么重试都会失败,包括 SDK 的自动重试。

限流时该看的响应头:retry-after、anthropic-ratelimit-* 和 OpenAI 的 x-ratelimit-*

Claude Code 自己会重试哪些 429

对短时的 429 限流,Claude Code 会先用指数退避自己重试,默认最多 10 次,然后才把错误显示给你。用 claude.ai 订阅登录时,从 v2.1.199 开始,不带套餐额度响应头的 429 也会自动重试。真正的套餐额度用完不会重试,因为不到重置时间重试也没用;网关的消费上限 429 也不会重试。设置备用模型同样帮不上忙,模型配置文档写明速率限制错误不会触发备用模型。

在 CI 这类没人看着的场景里,可以设 CLAUDE_CODE_RETRY_WATCHDOG=1,让 Claude Code 对 429 和 529 容量错误无限重试。从 v2.1.239 开始,遇到消费上限或余额不足的 429 时它会直接失败,不会一直重试下去。

Codex 的 429:限流和 insufficient_quota 的区别

Codex 会根据服务器随 429 返回的内容显示不同的提示。我看了开源的 Codex CLI 里的错误处理代码,它是这样区分的:

服务器返回Codex 显示怎么办
usage_limit_reachedYou’ve hit your usage limit,知道重置时间时会带上运行 /status,等重置,买额外额度或者改用 API key
usage_not_includedTo use Codex with your ChatGPT plan, upgrade to Plus你的套餐不包含 Codex
insufficient_quota、credit_balance_exhausted 或消费上限代码Quota exceeded. Check your plan and billing details.充值或调高上限,重试没用
其他 429exceeded retry limit, last status: 429 Too Many Requests等一等,少开几个并行会话

第一行是 ChatGPT 套餐额度。OpenAI 的 Codex 价格页写着 Plus 和 Business 有 5 小时额度,Pro 目前没有 5 小时额度,另外还可能有每周额度。额度用完后,Plus 和 Pro 用户可以买额外额度,所有用户也都可以用 API key 在本地继续用,按 API 价格计费。

第三行是账单问题。OpenAI 的 API 错误代码文档给余额用完、组织消费上限和项目消费上限分别列了代码,并说明更宽泛的错误类型仍可能是 insufficient_quota。文档还写明,重试账单、消费上限或额度类错误不会恢复 API 访问。所以 Codex 提示“Quota exceeded”时,去账单页处理,不要干等。

最后一行是普通的速率限制。Codex 默认会把 HTTP 请求重试 4 次(配置参考里的 request_max_retries),还不行才显示这条提示。OpenAI 的速率限制文档说,临时 429 可能带 Retry-After,要把它当作最少等待时间,再加一点随机延迟。x-ratelimit-remaining-requests、x-ratelimit-remaining-tokens 和对应的 x-ratelimit-reset-* 响应头会告诉你还剩多少、多久恢复。OpenAI 还有一种代码为 slow_down 的 429,意思是请求量涨得太快了。

429 限流和 Codex 429 对照:速率限制、套餐额度、insufficient_quota 和过载

不是 429 的两种报错

有两种报错看起来很像,其实和你的额度无关。在 Claude 这边,529 overloaded_error 表示 Anthropic 这个模型的算力不够,不计入你的额度,用 /model 换个模型往往就能解决,详细的我写在 Claude Code 529 Overloaded 是什么意思。在 Codex 这边,对应的是 503,Codex 显示为“Selected model is at capacity”,可以看 Selected model is at capacity 是什么意思。

额度明明还有却报 429

有时候数字对不上,两个工具都有用户报告过。Claude Code 的 #96872 号 issue(2026 年 9 月)里,一位用户记录到 195 条 rate_limit_error,而当时会话额度和每周额度只用了 27% 和 26%,同时开着大约 6 个会话。Codex 那边,#57072 号 issue(2026 年 10 月 26 日)报告每周额度还剩 99% 时出现 429,这位用户重新登录后暂时恢复了。

如果你也是这种情况,先在对应工具里运行 /status,关掉多余的会话,再重新登录。数字还是对不上的话,带上请求 ID 去提交报告。Claude 的请求 ID 在 request-id 响应头里,Codex 有请求 ID 时会把它显示在重试次数用完那条提示的末尾。两家都没有说明并行会话怎么计入这些限流,所以别默认多开会话不占额度。

如果你还在两个工具之间犹豫,我在 Claude Code 和 Codex 该买哪个里比较过价格和额度。

Claude Code 429 限流常见问题

换模型能解决 429 限流吗?

只对 Opus 或 Sonnet 系列额度有用。会话额度和每周额度是所有模型共用的,/model 解决不了。

遇到 429 限流要等多久?

看提示里的重置时间。API 返回的 429 如果带 retry-after,就按它等。如果是等级消费上限,没有 retry-after,会一直持续到下个月 1 号 00:00 UTC,除非你申请到了更高的上限。

Max 套餐几乎没怎么用,为什么也报 429?

运行 /status,看看环境里是不是设了 ANTHROPIC_API_KEY,设了的话 Claude Code 会用这个 key,而不是你的订阅。订阅确实生效还是报错的话,可能是短时限流,或者上面提到的那类 bug。

Codex 提示 Quota exceeded,重试有用吗?

没用。OpenAI 明确说重试账单、消费上限或额度类错误不会恢复访问,要先充值或调高消费上限。

留下你的想法

你的邮箱不会公开。