Codex 切 GPT-6.1 Terra 报 model is not supported,明明登的是 ChatGPT 账号

codex login status 显示 Logged in using ChatGPT,/model 选完 Terra 发一句话,回来的是 HTTP 400:

{"type":"error","status":400,"error":{"type":"invalid_request_error","message":"The 'gpt-6.1-sol' model is not supported when using Codex with a ChatGPT account."}}

上面这段是官方仓库 issue openai/codex#49396 里贴的原文,当时报的是 GPT-6.1 Sol。同一个 issue 里还有人贴出 gpt-6-luna 的版本,句子一模一样,只是单引号里的模型名变了,所以 Terra 被拒时看到的应该也是这一句。这句话读起来像是 ChatGPT 账号不能用 Codex,其实登录没问题,是这个模型在你当前的客户端、配置或套餐下没被放行。下面说的都是我对着 10 月份官方页面核过的。

模型名先对一遍

GPT-6.1 Terra 是 10 月 26 日那周上的,ChatGPT Learn 的更新页写的是 Codex 和 ChatGPT Work 可用,套餐列了 Plus、Pro、Business、Enterprise、Edu,并且明确说 Chat 里没有这个模型。OpenAI 的发布文章列的是 Plus、Pro、Enterprise、Edu,没写 Business,两页对不上,Business 用户就以自己 workspace 里能不能选到为准。Enterprise 还要看管理员有没有开。

模型页上的 ID 是 gpt-6.1-terra,全小写、中间是点。写成 gpt-6.1 terra、gpt6.1-terra 之类,服务端只会当成不认识的模型。

翻一下 config.toml

桌面端、CLI 和 IDE 插件读的是同一个配置文件,macOS/Linux 在 ~/.codex/config.toml,Windows 在 %USERPROFILE%\.codex\config.toml。很多人这里还留着几个月前的 model = "gpt-5.5" 或 model = "gpt-5.4"。按 Codex 模型文档,用 ChatGPT 登录时 gpt-5.4、gpt-5.4-mini 8 月 31 日就下了,gpt-5.5 是 10 月 14 日下的,gpt-5.3-codex-spark、gpt-5.2、gpt-5.3-codex 也都不能用了。命令行里 -m 指定 Terra 那一次没问题,换个场景又读回配置里的旧名字,就会时好时坏。

两种改法:把 model 这行删掉,让客户端用推荐的默认模型;或者直接写

model = "gpt-6.1-terra"

名字里还有个容易混的地方:帮助中心那篇文章讲 GPT-5.4 下线时,让大家换成 GPT-5.6 Terra 和 GPT-5.6 Luna;模型文档同一件事写的是换成 gpt-6-sol 和 gpt-6-luna。两页说法不一致,而且 GPT-5.6 Terra 和这次的 GPT-6.1 Terra 是两代模型,照着旧文章抄名字,很可能抄到的不是你想要的那个。这些下线只针对 ChatGPT 登录,用自己 API key 登录的 Codex 不受影响,所以同一份配置换个登录方式表现不一样也正常。

profile、自定义 agent、定时任务、codex exec --model 的脚本里如果也写了模型名,得一起改,只改顶层那行不够。

客户端版本

模型文档写了 GPT-6.1 Terra 需要 Codex CLI 0.159.0 或更高。先跑 codex --version 看一眼,低了就按 CLI 页面的方式更新,macOS/Linux 用独立安装脚本的话,更新命令和安装是同一条:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

npm 或 Homebrew 装的就走对应的升级方式。VS Code 插件自带一份 Codex,CLI 升了插件没升,插件里照样报错。

#49396 里更多人踩到的是后台 app-server 守护进程:CLI 已经是新版,后台还跑着旧版的 app-server,模型列表和请求都按旧版走。issue 评论里贴过这几条(社区反馈,不是官方文档):

codex app-server daemon update --from-cli --yes
codex app-server daemon restart
codex app-server daemon version

是不是卡在这一层,可以对照 issue 里有人描述的现象:codex debug models 能看到新模型,/model 列表里却没有,用 -m 强行指定后本地能显示,一发请求就 400。碰到这种对不上的情况,多半要查守护进程版本。

version 输出里 cliVersion 和 appServerVersion 要一致。有人在 Windows 上更新守护进程失败,临时用 codex --no-daemon 绕过去。也有人在 Linux 上发现旧版 app-server 进程关了所有会话还挂在后台,杀掉之后才更新成功。

还有两种情况

同一个 issue 里有人在 Pro 到期那一刻收到一模一样的报错,CLI 是新版也没用,这种去 Codex 的用量设置页确认套餐状态。另一种是灰度还没推到你的账号,客户端和配置都对,只能等。官方帮助文章 Using Codex with your ChatGPT plan 也只说默认模型取决于 CLI/插件版本和配置,没有给出更细的判断方法。

这个报错不区分原因,issue 里已经有人提议按套餐过期、套餐不含该模型、客户端太旧、未灰度分别返回不同 code,目前还是 open 状态。要是改完配置、升级、重启守护进程都还不行,把 codex --version、codex app-server daemon version 的输出和套餐类型一起贴出来,比较好判断卡在哪一层。