报 429 rate limit exceeded / concurrency limit exceeded 怎么解决
API Error: 429 {"type":"error","error":{"type":"rate_limit_error","message":"API Key request rate exceeded"}}CCSub 的 429 分三种:API Key request rate exceeded(每把 Key 每分钟请求数超了,默认 60 次)、API Key token rate exceeded(自定义 Token 速率超了)、User concurrency limit exceeded(账号同时进行的请求超过上限,默认 10 个)。原因不同,解法也不同。
3 步解决
- 1
看 message 是哪一种限制
API Key request rate exceeded 是这把 Key 每分钟请求数超了;API Key token rate exceeded 是你给这把 Key 设的 Token 速率超了;User concurrency limit exceeded 是整个账号同时在等待响应的请求太多。
- 2
速率类:到 Keys 页面调整这把 Key
控制台 API Keys 页面编辑这把 Key,在「速率限制」里打开自定义,把每分钟请求数调高;Token 速率留空表示不限。也可以给不同工具、不同项目各建一把 Key,每把 Key 单独计数。
- 3
并发类:减少同时进行的请求
少开几个同时运行的 Claude Code / Codex 会话,减少并行的子代理或批量脚本的并发数。并发上限按账号计算,账号下所有 Key 共用,多建 Key 不能解决;确实需要更高并发可以联系客服说明使用场景。
同一个问题的其他写法
{"type":"error","error":{"type":"concurrency_limit_error","message":"User concurrency limit exceeded"}}{"type":"error","error":{"type":"rate_limit_error","message":"API Key token rate exceeded"}}exceeded retry limit, last status: 429 Too Many Requests
三种 429 的区别
CCSub 在转发请求之前会依次做三项检查,任何一项不通过都返回 HTTP 429:
API Key request rate exceeded:限制的是单把 Key 每分钟的请求次数,默认 60 次 / 分钟,可以自己在 Keys 页面调整。API Key token rate exceeded:限制的是单把 Key 每分钟的 Token 速率,默认不限,只有你自己设置过才会出现。User concurrency limit exceeded:限制的是整个账号同时进行的请求数,默认 10 个,用户自己不能调整。
前两种的 error.type 是 rate_limit_error,第三种是 concurrency_limit_error。
每分钟请求数超了
计数方式是固定的 60 秒窗口:从这把 Key 的第一个请求开始算,60 秒内超过上限的请求直接返回 429,下一个窗口重新计数。Claude Code 一次操作除了主对话,还会发生成标题、后台小任务等额外请求;opencode、Cline 这类工具在执行工具调用时请求也很密集,默认的 60 次在高强度使用时可能不够。
处理方法:
- 打开控制台的 API Keys,编辑这把 Key,在「速率限制」里打开「自定义速率限制」,调高「每分钟请求数(req/min)」。
- 不同工具、不同项目分别用不同的 Key。速率是按 Key 单独计算的,分开后互不影响,也方便在使用记录里按 Key 看用量。
- 自己写的批量脚本,给请求加上间隔或排队,收到 429 后等几秒再重试,不要立即重发。
Token 速率超了
只有你在 Keys 页面给这把 Key 设置过 Token 速率时才会出现。要注意它的计算方式:每个请求按请求体里声明的 max_tokens 累加,而不是实际消耗的 Token。Claude Code 每个请求的 max_tokens 常常是几万,如果你设了一个十几万的 Token 速率,每分钟可能只够几次请求。不需要限制的话,把 Token 速率留空即可。
账号并发超了
并发统计的是同一个账号下、同时在等待上游开始返回结果的请求数(非流式请求要等到完整结果返回)。账号下所有 Key 共用这个上限,所以多建 Key 不能绕开。容易撞到的场景:
- 同时开了好几个 Claude Code 或 Codex 窗口,每个都在跑任务;
- Claude Code 一次派出很多个并行子代理;
- 批量脚本、评测脚本用高并发打接口。
处理方法是降低并发:少开几个同时运行的会话,批量任务把并发数调到 10 以下。如果你的业务确实需要更高的并发,可以发邮件联系客服说明使用场景。
不同工具里长什么样
- Claude Code 会先自动重试,界面显示
Retrying in Ns · attempt x/10,重试耗尽后才显示API Error: 429 ...。 - Codex 重试耗尽后显示
exceeded retry limit, last status: 429 Too Many Requests。 - 自己写代码:根据
error.type区分,rate_limit_error可以等到下一分钟再发,concurrency_limit_error要等手上已有的请求返回后再发新请求。
常见问题
默认限制是多少?
每把 Key 默认每分钟 60 次请求,按 60 秒的固定窗口计数;Token 速率默认不限。每个账号默认最多 10 个请求同时在等待上游响应。
Claude Code 会自动重试 429 吗?
会。Claude Code 对临时性的 429 默认最多重试 10 次,界面上会显示 Retrying in Ns · attempt x/10。重试都失败后才把错误显示出来,所以看到报错时往往已经持续超限了一段时间。
我设了 Token 速率限制,为什么请求很少也报 token rate exceeded?
Token 速率按每个请求里声明的 max_tokens 累加,而不是按实际消耗。Claude Code 这类工具每个请求的 max_tokens 往往是几万,几次请求就能用完一个不大的 Token 速率额度。不需要的话把 Token 速率留空即可。
429 会扣费吗?
不会。限流在转发给模型之前就返回,不计费。
还是不行?
- 按症状查《故障排查》文档
- 联系客服:发邮件到 support@ccsub.net,附上工具名和版本、系统、完整报错文本和注册邮箱(不要发 API Key)。
- 对照接入教程重新检查配置:Claude Code 接入教程、Codex CLI 接入教程、Cline 接入教程
相关报错
API Error: 402 {"type":"error","error":{"type":"insufficient_balance","message":"余额不足,请前往 https://www.ccsub.net/purchase 充值"}}账户可用余额不够,或月卡当天额度用完。看 message 是哪种:充值按量余额、等北京时间 0 点额度重置,或在余额本来够时等几分钟再试。API Error: 503 {"type":"error","error":{"type":"overloaded_error","message":"上游线路暂时不可用,请稍后重试(不是您账户余额的问题) | Upstream temporarily unavailable, please retry shortly (this is not about your account balance)."}}CCSub 已自动换线重试过,这次仍没有可用线路。等一两分钟在原会话里发「继续」,或用 /model 换个型号;不扣费,也不是你的余额问题。API Error: 504 {"type":"error","error":{"type":"timeout_error","message":"Upstream timed out"}}等上游的时间超过上限了。自己调用时改成流式(stream: true),上下文太长就 /compact,长输出拆成几次;偶发一次直接重试即可,不计费。
还没有 CCSub 账号?
注册后在控制台创建 API Key,填进 Claude Code、Codex 等工具即可使用,按实际用量计费。