Codex 报错「Selected model is at capacity」怎么办?不是额度用完:503 原因、自动重试与换模型

Codex 提示 Selected model is at capacity,不是额度用完,而是服务端满载(HTTP 503)。本文教你几步分清报错、等自动续跑、换模型、调大重试次数,附常见报错对照表。

4 分钟阅读
Codex 报错「Selected model is at capacity」怎么办?不是额度用完:503 原因、自动重试与换模型

先说结论:Codex 弹出 「Selected model is at capacity. Please try a different model.」,意思是你选的模型那边服务器满载了,不是你的额度用完,也不是账号出了问题。在 Codex 源码里,它对应的是服务端返回的 HTTP 503,错误码 server_is_overloaded。

所以处理思路很简单:先确认额度还在,然后要么等它自动续跑,要么换个模型,长任务可以调大重试次数或改用 API Key 走 Provider。下面一步步来。

这个报错到底是什么意思

Codex 里有三种经常被混在一起的报错,处理办法完全不同:

报错类型你看到的样子是什么原因怎么办
模型满载(ServerOverloaded)Selected model is at capacity / 503服务端算力不够,不是你的问题等一等、换模型、调大重试
请求太快(RateLimitExceeded)429 Too Many Requests短时间请求过多被限流降低频率,按 Retry-After 等待
额度用完(UsageLimitReached)You've hit your usage limit 一类提示套餐的使用窗口或额度耗尽等额度重置或升级套餐

还有一点很多人不知道:看到这句报错时,Codex 其实已经替你重试过好几次了。它会遵守服务端返回的 Retry-After 等待时间,重试次数用完还是失败,才把这句话显示出来。所以别狂按回车,那只会让情况更糟。

这次报错高发是有背景的:10 月中旬 GitHub 上集中出现了一批同类反馈(如 #53589、#53256、#53843、#54283)。10 月 15 日 Codex 负责人 Tibo 在 X 上表示,官方已经上线一系列改动并增加算力,这个报错会明显减少;即便出现,Codex 也会自己继续往下跑,而不是卡住不动。

第 1 步:先确认不是额度用完

在 Codex 会话里输入:

text
/status

用 Codex App 的话,到 Settings → Usage 看用量。只要额度还有剩余、使用窗口没触顶,那就可以确定是服务端满载,接着看下一步。如果额度真的用完了,那是另一个问题,参考《Codex 怎么收费》。

第 2 步:升级到最新版,等它自动续跑

官方的修复一部分在服务端,一部分在客户端。先把 Codex 升到最新版:

bash
npm install -g @openai/codex@latest

用 Homebrew 装的就 brew upgrade --cask codex,Codex App 按提示更新即可。升级后再遇到满载,通常稍等一会儿任务会自己接着跑,不需要你手动重发。

第 3 步:换一个模型

报错原文就写着「Please try a different model」——满载是按模型算的,换一个往往就好了。

在会话里输入 /model,从列表里选另一个模型;或者启动时直接指定:

bash
codex -m 模型名
换模型只是临时绕开。等原模型恢复后,再用 /model 切回来就行。

第 4 步:看一眼官方状态页

打开 status.openai.com,如果 Codex 相关服务标着故障或性能下降,那就是大范围的问题,本地怎么折腾都没用,等官方恢复就好。

第 5 步:在 config.toml 里调大重试次数

如果你用的是自定义 Provider,可以在 ~/.codex/config.toml 对应的 [model_providers.<id>] 下面调大重试次数,让 Codex 多扛几轮满载再报错:

toml
[model_providers.aicodewith]
# 其他配置保持不变,只加下面三行
request_max_retries = 8          # 请求失败重试次数,默认 4
stream_max_retries = 10          # 流式中断重连次数,默认 5
stream_idle_timeout_ms = 300000  # 流式空闲超时,默认 300000(5 分钟)
这几个数字来自 Codex 源码:request_max_retries 默认 4、stream_max_retries 默认 5,两者上限都是 100,设得再大也会被截到 100。没必要拉满,翻一倍左右就够用。config.toml 各字段的完整说明见《Codex config.toml 配置指南》。

第 6 步:长任务改用 API Key 走 Provider

如果你经常跑长任务,被满载打断很心累,可以改用 API Key 通过 Provider 接入。把 Key 直接写进全局配置 ~/.codex/config.toml 即可,不用设置环境变量:

toml
model_provider = "aicodewith"
model = "gpt-5.6-sol"

[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "sk-你的Key"

获取 API Key →

注意:如果你之前的配置里有 env_key 这一行,记得删掉。留着它,Codex 会去读环境变量,找不到就报 Missing environment variable。更完整的接入步骤见《Codex 接入 AICodeWith》和《Codex API Key 怎么配置》。

第 7 步:还是不行,用 /feedback 反馈

上面都试过还频繁报错,在 Codex 会话里输入 /feedback 提交反馈,官方能拿到对应的请求记录来排查。

Codex 常见报错对照表

报错原因先做什么详细排查
Selected model is at capacity(503)模型服务端满载等自动续跑 / 换模型 / 调大重试本文
429 Too Many Requests请求太快被限流降频,按 Retry-After 等待Codex 429 怎么解决
额度用完(usage limit)套餐额度或使用窗口耗尽/status 看重置时间Codex 怎么收费
401 Unauthorized登录失效或 Key 不对检查登录方式和 KeyCodex 401 怎么解决
timeout 超时网络、流式空闲等多种超时先分清是哪种超时Codex timeout 怎么排查

常见问题

看到 at capacity,是我的额度用完了吗?

不是。额度用完是另一种报错(UsageLimitReached)。at capacity 是服务端满载,用 /status 确认额度还在就能排除。

Codex 一直重试、一直转圈正常吗?

正常。满载时 Codex 会按服务端给的等待时间自动重试,重试用完才报错。耐心等一会儿,或者直接换个模型。

Codex 503 和 429 有什么区别?

503 是服务器忙不过来,跟你发多快无关;429 是你(或你的账号)在短时间内请求太多,被限流了。前者换模型往往有效,后者要降低请求频率。

换了模型还是报 at capacity 怎么办?

先看 status.openai.com 有没有故障公告;没有的话升级到最新版,调大重试次数。长任务建议改用 API Key 走 Provider。

重试次数是不是越大越好?

不是。上限是 100,而且设太大时,真遇到长时间故障会一直卡着才报错。按默认值翻一倍左右就够了。

相关文章

Claude Code 怎么控制 Unreal Engine?Epic 官方插件安装、MCP 连接与安全设置(UE5 实操)

Claude Code 怎么控制 Unreal Engine?Epic 官方插件安装、MCP 连接与安全设置(UE5 实操)

Epic Games 在 Anthropic 官方插件市场提供了 Claude Code Unreal Engine 插件 unreal-engine-skills-for-claude-code,配合编辑器里的 Unreal MCP,就能让 Claude Code 直接操作 UE5 编辑器。本文讲清编辑器端要开哪两个插件、怎么启动 MCP 服务、Claude Code 端怎么装插件和验证连接,以及 execute_tool_script 等安全设置。我们用 AICodeWith 的 Key 实测:插件 2.5 秒装好,全程不需要登录 Anthropic 账号。