Codex 报 Selected model is at capacity. Please try a different model. 怎么办

2026-09-28

Codex 正干着活,突然停下来,给你一句:

Selected model is at capacity. Please try a different model.

有时候它出现在压缩上下文的时候,前面多一截:

Error running remote compact task: Selected model is at capacity. Please try a different model.

这条报错的字面意思很直白:你选的模型现在满载,换一个。但有一点很多人没注意到——在主对话里,Codex 碰到它不会自己重试。同样是「服务端出了状况」,断流会重连好几次,这条却一出现就停。下面讲为什么,以及该怎么应对。

本文依据 Codex 仓库 rust-v0.157.1(2026-09-25 发布)的源码。

一、这句话是从哪来的

这句英文不是服务端原样发过来的,而是 Codex 自己的固定文案。源码里,只要服务端返回的错误码是 server_is_overloaded,Codex 就把它归为「服务端过载」,显示成这一句。

服务端有两种方式把这个错误码交给 Codex:

  • 请求一开始就被拒:HTTP 返回 503,响应体里 error.code 是 server_is_overloaded;
  • 回答进行到一半:流式输出里来了一个错误事件,错误码同样是 server_is_overloaded。

所以不管它是在你刚发出消息时出现,还是模型写到一半时出现,意思都一样:服务端明确说了,这个模型现在接不了。

二、为什么 Codex 不自动重试

Codex 对每一类错误都有一个判断:可以重试的,给一个等待时间,过一会儿再发;不能重试的,直接把错误交给你。

在源码的这张表里,「服务端过载」被放在了不重试那一边,和用量额度用完、上下文超长这些放在一起。而网络断开、超时、普通的 5xx 服务器错误都在会重试那一边。

源码没有写明这样分类的理由。从结果看,它的效果是:不在原地反复重发,而是把选择权交回给你,要么换模型,要么自己决定什么时候再试。

顺带区分一个长得像的:如果服务端返回的错误码是 slow_down,Codex 会把它当成限流处理,那一类是会等一会儿再重试的。

三、怎么应对

最直接:换模型。 在 Codex 里输入 /model,选一个别的模型或者别的推理强度,然后让它继续刚才的任务。报错文案本身也是这么建议的。

不想换模型:过一会儿再发。 把刚才那句话再发一次,或者说一句「继续」,碰上服务端缓过来就能接着跑。

在压缩时报的:压缩发生在对话很长的时候,这时候报错会让整轮卡住。可以先换模型把压缩做完,再切回原来的模型继续;或者直接新开一个会话,把关键上下文带过去。压缩相关的其它报错见相关阅读。

无人值守的任务:因为这条不会自动重试,放在后台跑的长任务一旦撞上就会停在那里。如果你经常在高峰时段挂长任务,这是需要预期的风险:要么避开高峰,要么定时回来看一眼。

四、它不是什么

  • 不是你的账号额度用完了。 额度用完在源码里是另一个单独的错误类型,显示的也是另一段文案。
  • 不是网络问题。 能收到这条报错,说明你和服务端之间是通的,服务端还有余力回你一句话。查代理、换网络对它没有帮助。

附:Codex 里哪些错误会自动重试,哪些不会

看懂这张表,下次看到任何一条 Codex 报错,都能先判断「要不要等它」。下面按 Codex 源码里的错误分类整理,只列常见的几种:

会自动重试不会自动重试
流中断(各种 stream disconnected before completion)服务端过载(本文这条)
限流(包括服务端返回 slow_down)用量额度用完
超时配额超出、套餐不含用量
意外的 HTTP 状态码上下文超出模型窗口
连接失败请求本身无效
服务端内部错误沙箱相关错误
—重试次数已经用完

(这张表说的是主对话。Codex 里另有一些内部环节有自己的重试规则,不在此列。)

会重试的那一类,Codex 会优先按服务端给的等待时间来;服务端没给,就用逐次加倍、带一点随机抖动的等待。你在界面上看到的 Reconnecting... 2/5 这类倒数,就是这一类在工作。

不会重试的那一类有一个共同点:原样再发一次,结果大概率不会变。额度用完了、上下文太长了、请求本身有问题,重发都没用,得有人改点什么。服务端过载也被放在这一边,Codex 显示的固定文案给出的建议是:换一个模型。

所以判断一条报错的第一步可以很简单:界面上有没有出现重连倒数? 有,先等;没有、直接停了,就是要你动手的那一类。

五、一句话总结

  • 来源:服务端错误码 server_is_overloaded,Codex 显示为固定文案;
  • 特点:不自动重试,一出现就停;
  • 应对:/model 换模型,或者过一会儿重发;后台长任务要预期到它会停下。

如果你用的是 Claude Code,类似的情况是 529 Overloaded,处理思路可以对照着看,见相关阅读。

相关阅读

想系统学会用 AI?报名体系课或加入会员,照着学、照着用。

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。