适用场景: Claude Code 出现 API Error: 429 rate_limit_error,或订阅用户看到 “session limit / weekly limit reached” 类提示,无法继续使用。
用着用着,终端弹出:
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先看清自己的身份和状态
|
1 |
/status |
确认当前登录的是哪个账号、哪种计费方式。很多人 429 的真实原因是:终端里登录的根本不是自己以为的那个账号(比如之前配过别的 Key 或中转,忘了切回来)。
第二步:按报错里的重置时间等
订阅用量上限类的 429,提示里直接写了重置时间(例如 6pm)。这种没有任何绕过的办法,到点自动恢复,安心等即可。
第三步:速率限制类——降频率、减并发
如果是每分钟请求/token 超标:
第四步:给子代理换个便宜的小模型
子代理(subagent)干的活往往不需要主力大模型。用环境变量把它们指到更轻的模型上,速率和额度都能省一大截:
|
1 |
CLAUDE_CODE_SUBAGENT_MODEL=你的轻量模型名 |
第五步:持续失败 → 检查是不是支出上限
怎么等都 429、且报错里没有重置时间的,去控制台检查账户的月度支出上限(spend cap)设置。这种 429 不会自愈,需要调高上限或等额度周期重置。
等待或调整后,发一条简单消息测试;订阅类可以临近重置时间后再试。同时可以用 /status 再确认一遍账号状态没跑偏。
Claude Code 报错自救手册:429 过载、401 鉴权、529 限流解决详解
适用人群:日常使用 Claude Code 的开发者,无论你是直连官方 API、订阅 Pro/Max 套餐,还是通过中转/第三方服务接入。
Claude Code 报错全景图
这部分是全文的核心。收藏这张总表,遇到报错先对号入座:
| 错误码/文案 | 一句话定性 | 责任方 | 首要动作 |
|---|---|---|---|
| 401 authentication_error | 凭证无效 | 你的 Key | 检查 Key 和环境变量 |
| 403 permission_error | 权限不足/地区限制 | 账号 | 检查账号状态与服务地区 |
| 404 not_found_error | 地址或模型名错了 | 你的配置 | 核对 Base URL 和模型名 |
| 429 rate_limit_error | 你超频了 | 你的用量 | 降速、降并发、升套餐 |
| 429 engine overloaded | 服务器太忙 | 服务端 | 等待、重试、换模型 |
| 500 / 502 / 503 | 服务端内部错误 | 服务端 | 查状态页、稍后重试 |
| 504 / timeout | 处理超时 | 网络或任务太大 | 拆小任务、开流式 |
| 529 overloaded_error | 官方容量紧张 | Anthropic | 查 status、慢速重试 |
| Credit balance is too low | 余额耗尽 | 你的钱包 | 充值或切换订阅 |
| ECONNRESET / fetch failed | 网络断了 | 你的网络 | 检查网络连接与环境 |
| Prompt is too long | 上下文爆了 | 你的会话 | /compact 或 /clear |
下面逐个展开。
401 Unauthorized:认证失败
典型报错:
|
1 |
API Error: 401 · authentication_error: invalid x-api-key |
常见原因:
解决方案:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# 1. 检查当前生效的 Key(注意别在公开场合打印完整 Key) env | grep -i anthropic
# 2. 重新设置(以官方为例) export ANTHROPIC_API_KEY="sk-ant-你的Key"
# 3. 用最小请求验证 Key 是否有效 curl https://api.anthropic.com/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-haiku-4-5-20251001","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}' |
curl 能通但 Claude Code 不通 → 问题在 Claude Code 的本地配置;curl 也 401 → Key 本身有问题,去后台重新生成。
403 Forbidden:权限不足
典型报错:
|
1 |
API Error: 403 · permission_error |
常见原因:
解决方案:
合规提示:请确保你的账号注册和使用方式符合服务商的《服务条款》及所在地相关法律法规。
404 Not Found:地址或模型名错了
典型报错:
|
1 |
API Error: 404 · not_found_error: model: claude-xxx not found |
常见原因:
解决方案:
|
1 2 3 4 5 |
# 核对 Base URL 格式,逐字检查 echo $ANTHROPIC_BASE_URL
# 去服务商后台复制模型名,不要手敲 # 官方模型名示例:claude-sonnet-4-5-20250929(带日期后缀) |
经验法则:模型名一律从服务商后台/文档复制,永远不要凭记忆手打。
429:限流与过载(本文主角)
前面第一章已经详细拆解了 429 的两张面孔,这里补充**你自己的限流(rate_limit_error)**该怎么系统解决:
典型报错:
|
1 |
API Error: 429 · rate_limit_error: This request would exceed your rate limit |
限流的三个维度(官方 API):
| 维度 | 说明 | 怎么查 |
|---|---|---|
| RPM | 每分钟请求数 | 控制台 Settings → Limits |
| TPM / ITPM / OTPM | 每分钟 Token 数(输入/输出分开算) | 同上 |
| 并发数 | 同时在飞的请求数 | 套餐说明 |
解决方案(按优先级):
500 / 502 / 503 / 504:服务端错误与超时
典型报错:
|
1 2 |
API Error: 500 · internal_error API Error: 504 · Gateway timeout |
定性:这些都是服务端问题,和你的配置无关。但 504 超时有一个例外:任务本身太大(比如让模型一次性输出几万字、处理超大文件),处理时间超过了网关超时阈值。
解决方案:
529 overloaded_error:官方过载专属码
典型报错:
|
1 |
API Error: 529 · overloaded_error |
这是 Anthropic 官方专门为"容量紧张"设的状态码,和 429 的核心区别是:429 针对你的账号,529 针对所有人。
解决方案:
一个重要提醒:有用户反馈遇到限流/过载报错时套餐用量(usage)也莫名被扣,如果你怀疑遇到了这个 bug,保留好时间线和截图去官方 GitHub 仓库(anthropics/claude-code)提 Issue。
Credit balance is too low:余额耗尽
典型报错:
|
1 |
Credit balance is too low |
定性:这不是技术问题,是钱包问题——你的 Console 组织预付费额度用完了。
解决方案:
网络类错误:ECONNRESET / ETIMEDOUT / fetch failed
典型报错:
|
1 2 3 |
API Error: fetch failed Error: read ECONNRESET Error: socket hang up |
定性:请求根本没到服务端,或者半路断了。常见原因是本地网络不稳定、DNS 解析异常,或者公司网络的防火墙/安全软件拦截了请求。
解决方案:
|
1 2 3 4 5 6 7 8 9 10 |
# 1. 测试目标 API 的连通性 curl -I https://api.anthropic.com
# 2. 如果你在公司办公网络下,确认企业代理配置(向公司网管索取代理地址) export HTTPS_PROXY="http://公司代理地址:端口"
# 3. 常见修复姿势 # - 切换网络环境试试(如从 Wi-Fi 换到手机热点,排除本地网络问题) # - 检查防火墙/安全软件是否拦截了 Claude Code 的网络请求 # - 尝试更换 DNS(如 223.5.5.5 / 114.114.114.114) |
经验法则:fetch failed 类错误先看本地网络,再看 DNS,最后才怀疑服务商。
Prompt is too long:上下文爆了
典型报错:
|
1 |
API Error: 400 · prompt is too long: xxx tokens > 200000 maximum |
定性:会话上下文超过模型上下文窗口上限。长时间连续开发的会话几乎必遇。
解决方案:
Q:429 会被封号吗?
不会。限流是正常的保护机制,等一等或降速就恢复,和违规封禁是两回事。
Q:我一直很轻度使用,为什么也 429?
大概率是多会话/多 MCP 在后台放大了实际请求量,或者登录身份不对。先 /status 核对账号,再检查有没有忘了关的并行会话。
Q:529 和 429 怎么快速区分?
529 overloaded = 服务端挤爆了,等或换模型;429 rate limit = 你这边的频率/额度到顶了,降速或等重置。看状态码第一位后面的数字就行。
429 是所有报错里最需要"先诊断再治疗"的一个:速率限制就降速,用量上限就等重置,支出上限就调额度。下次再看到 Rate limit reached,先 /status 对身份、再看报错有没有重置时间,两分钟就能定位是哪一种。