Skip to content

遇到 529 过载别硬刷:CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS 调长重试间隔 ​

高峰时段用 Claude Code,偶尔会看到 Overloaded 之类的报错,背后是 HTTP 529:服务端暂时忙不过来。Claude Code 会自动退避重试,但如果间隔太短,几次重试可能都撞在同一波高峰里,最后还是失败。

CLI 2.1.292 新增环境变量 CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS,让你给 529 重试设一个更长的基础延迟。

529 和退避重试 ​

  • 529 表示服务过载,和你的账号、额度无关,通常过一会儿就好。
  • 遇到 529,Claude Code 会退避重试:每次失败后等一段时间再试,等待时间逐次变长。
  • 「基础延迟」就是这串等待时间的起点。起点越大,整串重试分布得越开,越有机会等到高峰过去。

注意它和额度用完不是一回事。周限额、用量上限触发时,重试再久也没用,要看 周限额说明。

什么时候值得调大 ​

  • 无人值守的任务:claude -p、CI 流水线、定时脚本,宁可慢一点,也别因为一阵过载整个任务失败。
  • 高峰时段跑长任务:一次重构要跑很久,中途撞上过载就前功尽弃。
  • 多个会话并发:同时开很多会话或子代理,一起重试会互相加剧拥堵,拉长间隔更温和。

交互使用、希望尽快拿到结果时,保持默认即可。

怎么设置 ​

单位是毫秒。临时用:

bash
CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS=5000 claude -p "跑一遍测试并修复失败用例"

长期生效,写进 shell 配置:

bash
export CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS=5000

或者写进 settings.json 的 env,让项目或团队统一:

json
{
  "env": {
    "CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS": "5000"
  }
}

上面的 5000 只是示例,按你能接受的等待时间来定。这个变量的用途是设置更长的基础延迟,不是用来把重试变得更快。

同版本另一个网络相关修复:NO_PROXY ​

如果你在公司网络里用 HTTPS_PROXY 走代理,同时用 NO_PROXY 排除了一些地址,旧版本有个问题:Claude Code 自己的 API 请求(登录、策略、反馈、artifacts)会忽略 NO_PROXY,照样走代理。2.1.292 已修复,NO_PROXY 对这些请求也生效了。之前因此登录卡住或策略拉取失败的,升级后可以再试。

小结 ​

  • 529 是服务过载,Claude Code 会自动退避重试。
  • 2.1.292 起可用 CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS(毫秒)拉长重试的基础延迟。
  • 无人值守、高峰长任务、多会话并发时值得调大;交互使用保持默认。
  • 同版本修复了 NO_PROXY 对 Claude Code 自身请求不生效的问题。

Claude-cn.org,专注于 Claude Code 中文教程