常见问题
Codex
Codex CLI 和插件接 2api 时最常见的报错和解决办法。
unexpected status 401 Unauthorized
Section titled “unexpected status 401 Unauthorized”先看报错末尾 url: 后面是哪个地址:
是 api.openai.com 或 chatgpt.com:你的自定义 provider 没生效,请求还在发往官方。逐项检查:
config.toml里有没有model_provider = "sub2api"这一行,名字和[model_providers.sub2api]是否完全一致(区分大小写)。- 这几行是不是放在了某个
[...]段落下面。放在段落下面会被当成那个段落的设置,要挪到文件最开头。 - provider 名字是不是叫
openai。这是 Codex 内置的名字,自定义地址会被忽略,换个名字。 - 配置是不是写在了项目目录的
.codex/config.toml里。provider 只能写在~/.codex/config.toml。 - 环境变量里有没有残留的
OPENAI_BASE_URL。
是 2api.dev:请求到了 2api,是 Key 的问题。
~/.codex/auth.json里还留着 ChatGPT 登录信息:备份后删掉,重新写入 Key(见 Codex CLI)。- Key 错了,或者分组不是 GPT 的分组。
- 用
codex login status看当前用的是哪种登录方式。
改完后完全退出 Codex,新开一个会话。
stream disconnected before completion
Section titled “stream disconnected before completion”- 检查
base_url是https://2api.dev/v1。 - 终端里设置了失效的代理:运行
env | grep -i proxy看看,修好代理,或者加NO_PROXY=2api.dev。 - 长时间思考时连接被断开:在
[model_providers.sub2api]里加stream_idle_timeout_ms = 600000。 - 配置被 CC Switch 等工具改坏过:按 Codex CLI 重新写一份。
- 换模型、换时间都会出现,请带上时间联系客服。
每次新对话都卡在 Reconnecting… 1/5 到 5/5
Section titled “每次新对话都卡在 Reconnecting… 1/5 到 5/5”Codex 先尝试用 WebSocket 连接,你的网络或代理不支持时要重试 5 次才退回普通连接。把 config.toml 里的 supports_websockets = true 和 [features] 下的 responses_websockets_v2 = true 删掉(或改成 false),完全重启 Codex。
提示模型不支持,或者推理档位不支持
Section titled “提示模型不支持,或者推理档位不支持”Model "xxx" is not supported by any configured account in this group:这个分组没有这个模型。模型名以控制台「使用密钥」里显示的为准,或者用/v1/models查。Unsupported value: 'xxx' is not supported with the 'yyy' model:这个模型不支持你设的推理档位,改model_reasoning_effort或者删掉这一行。- 临时换模型试试:
codex -m 模型名 -c model_reasoning_effort="high"
wire_api = “chat” is no longer supported
Section titled “wire_api = “chat” is no longer supported”新版 Codex 只支持 Responses 协议,把 wire_api 改成 "responses"。
VS Code 插件报 Missing environment variable,或者一直转圈
Section titled “VS Code 插件报 Missing environment variable,或者一直转圈”图形界面的编辑器拿不到终端里 export 的变量。用 auth.json 写入 Key(见 Codex CLI),不要依赖环境变量。然后完全退出编辑器再打开。配置文件格式写错时插件会悄悄用默认设置,在终端运行一次 codex 能看到带行号的报错。
改了 base_url 以后,历史会话不见了
Section titled “改了 base_url 以后,历史会话不见了”历史会话跟 provider 名字绑定。保持 model_provider = "sub2api"、[model_providers.sub2api]、name = "sub2api" 三处一致,只改 base_url 和 Key,不要换 provider 名字。
重新登录 Codex 会不会丢会话
Section titled “重新登录 Codex 会不会丢会话”不会。只要不删 ~/.codex/sessions,重置登录或改配置都不会删历史会话。