前言
适用场景: Claude Code 出现
API Error: 429 rate_limit_error,或订阅用户看到 "session limit / weekly limit reached" 类提示,无法继续使用。
问题现象
用着用着,终端弹出:
json
API Error: 429 {"type":"error","error":{"type":"rate_limit_error","message":"Rate limit reached"}}
订阅用户则更常见这样的提示:
Claude usage limit reached. Your limit will reset at 6pm (Asia/Shanghai)
有人等几分钟就好了,有人等到第二天还是不行------因为这两种根本不是同一个问题。
原因分析
429 家族其实有三种长相相似但完全不同的病,先学会分辨再吃药:
| 类型 | 本质 | 恢复时间 |
|---|---|---|
| 速率限制 | 每分钟 token / 请求数超标 | 通常等 1 分钟量级 |
| 订阅用量上限 | 会话 / 每周额度用完 | 提示里写明重置时间 |
| 支出上限 | 账户层月度消费封顶 | 到下月或主动提额 |
区分技巧: 看报错有没有给出重置时间------给了的多半是订阅用量上限,按提示等就行;持续失败、怎么等都不放行的,要怀疑是支出上限。速率限制最温和,歇一口气就过去。
另外记住一个原则:429 是"你这边的额度/频率问题",和 529(服务端过载)完全两码事,处理方式南辕北辙。
解决步骤
第一步:/status 先看清自己的身份和状态
/status
确认当前登录的是哪个账号、哪种计费方式。很多人 429 的真实原因是:终端里登录的根本不是自己以为的那个账号(比如之前配过别的 Key 或中转,忘了切回来)。
第二步:按报错里的重置时间等
订阅用量上限类的 429,提示里直接写了重置时间(例如 6pm)。这种没有任何绕过的办法,到点自动恢复,安心等即可。
第三步:速率限制类------降频率、减并发
如果是每分钟请求/token 超标:
- 关掉同时开着的其他 Claude Code 会话,别多窗口并行
- 大任务拆小,减少一次任务里连环的工具调用
- 退掉用不到的 MCP 服务器,很多 MCP 会后台产生额外请求
第四步:给子代理换个便宜的小模型
子代理(subagent)干的活往往不需要主力大模型。用环境变量把它们指到更轻的模型上,速率和额度都能省一大截:
CLAUDE_CODE_SUBAGENT_MODEL=你的轻量模型名
第五步:持续失败 → 检查是不是支出上限
怎么等都 429、且报错里没有重置时间的,去控制台检查账户的月度支出上限(spend cap)设置。这种 429 不会自愈,需要调高上限或等额度周期重置。
验证是否恢复
等待或调整后,发一条简单消息测试;订阅类可以临近重置时间后再试。同时可以用 /status 再确认一遍账号状态没跑偏。
常见问题
Q:429 会被封号吗?
不会。限流是正常的保护机制,等一等或降速就恢复,和违规封禁是两回事。
Q:我一直很轻度使用,为什么也 429?
大概率是多会话/多 MCP 在后台放大了实际请求量 ,或者登录身份不对。先 /status 核对账号,再检查有没有忘了关的并行会话。
Q:529 和 429 怎么快速区分?
529 overloaded = 服务端挤爆了,等或换模型;429 rate limit = 你这边的频率/额度到顶了,降速或等重置。看状态码第一位后面的数字就行。
写在最后
429 是所有报错里最需要"先诊断再治疗"的一个:速率限制就降速,用量上限就等重置,支出上限就调额度 。下次再看到 Rate limit reached,先 /status 对身份、再看报错有没有重置时间,两分钟就能定位是哪一种。
觉得有用点个赞,关注我,Claude Code 踩坑系列持续更新。