Appearance
问题解决
本页整理自 CodexZH 官方「常见问题解决方案」教程,并把关键步骤写成可操作的排查清单。
排查前先做一件事
先打开 服务运行状态 看一眼——如果服务端正在维护或故障,本地怎么改配置都没用,等恢复即可。
1. 401:认证失败
现象:请求返回 401(Unauthorized),提示认证失败。
401 只有 3 种原因:配置不对、额度用完、套餐到期。逐项排查:
- 检查
base_url和密钥是否"正确对应",密钥复制完整(不缺字符、不带多余空格) - 排查环境变量是否有冲突
- 确认账户已激活、订阅未到期
- 确认额度未用完(包月套餐为周限额,每周刷新,具体以定价页为准)
建议对照:环境配置 中的最小配置示例,逐项核对。
2. 流式中断:stream disconnected before completion
错误示例:
stream error: stream disconnected before completion
stream disconnected before completion: stream closed before response.completed可能原因:
- AI 思考时间过长(超过 150 秒会被系统截断)
- 网络连接不稳定
- 网络代理设置问题
解决思路:
- 简化问题,减少单次对话需要的长思考
- 更换更稳定的网络环境或线路节点
3. 路径配置错误:系统找不到指定的路径
错误示例:
Unable to persist auth file: 系统找不到指定的路径解决方案:
- 搜索并删除/清理所有额外的
.codex文件夹(避免写到错误目录) - 严格按照教程重新配置
- Windows 用户确认在正确目录下创建文件
- 检查文件夹权限
4. CLI / VSCode 切换模型问题
更新 Codex CLI 后,可能出现无法通过 /model 切换模型的问题,VSCode 与 CLI 的处理方式不同。
4.1 VSCode
修改 config.toml,添加:
toml
[model_providers.codexzh]
requires_openai_auth = true完整示例:
toml
model_provider = "codexzh"
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
[model_providers.codexzh]
name = "codexzh"
base_url = "https://api.codexzh.com/v1"
wire_api = "responses"
requires_openai_auth = true
web_search = "live"4.2 CLI
- 将
auth.json改为(注意null):
json
{
"OPENAI_API_KEY": null
}- 在环境变量中添加
CODEXZH_API_KEY,值为控制台里sk-开头的密钥。
macOS / Linux(当前终端会话临时生效):
bash
export CODEXZH_API_KEY="sk-你的实际密钥"配置后若出现 401,检查环境变量是否配置正确。
5. Codex 0.36.0 已知问题
5.1 历史会话丢失
更新 VSCode 插件后,之前的对话记录可能消失。降级到之前的插件版本可能找回记录。
5.2 思考等级设置
界面上无法直接调整思考等级。目前只能通过配置文件修改,等待官方修复。
5.3 文件编辑模式差异
gpt-5:支持可视化编辑器,有完整的变更列表gpt-5-codex:只能通过命令行编辑,无法追踪变更历史
5.4 插件配置简化
新版本插件不再需要在 settings.json 中配置 chatgpt.* 选项,只读取 config.toml。
常见错误速查
504 Gateway Timeout 错误
网络问题,检查代理和网络连接是否正常。
Connection failed: error sending request 错误
网络问题,打开或关闭代理、切换网络后重试。
413 错误
当前会话记录已超过 20MB,只能新建会话继续。
VSCode 插件一直在转圈,进不去
官方插件自身的问题,第一次访问可能会访问外网,最快的解决办法是使用代理。若还是不行则检查配置是否正确。
401 Unauthorized 错误
见上方 1. 401:认证失败。
UTF-8 错误
99% 是 Windows 系统中文编码错误导致的,将配置中的中文内容删除即可。
503 Service Unavailable 错误
如果报错信息包含 No available channel for model:报错里出现哪个模型名,就换一个当前可用的型号,并新建会话后再选;原有会话无法切换。常见对照:gpt-5.4 / gpt-5.4-mini / gpt-5.6-luna → gpt-5.6-terra,gpt-5.5 → gpt-5.6-sol,grok-4.5 → grok-4.7 或 grok-4.6(Grok 配置见使用 Grok 模型)。完整对照表见常见问题。
其他 503 情况依次检查:
- 网络是否正常
- 新建会话查看是否正常答复
- 套餐是否到期
- 配置是否正确
Your input exceeds the context window of this model 错误
上下文超长了。建议:
- 将项目相关规则编写到 AGENTS.md 文件中
- 细分功能模块,完成一个功能就新建一个对话
上下文过长且功能不相关会导致后续结果不准确。
stream 开头的流错误
99% 是网络问题,见上方 2. 流式中断。
403 Forbidden:检测到您的客户端存在异常
报错原文里带这段话:
我们检测到您的客户端存在异常,请使用标准 Codex 客户端请求,请避免任何基于我方 API 二次分发的 API 转接接入。
平台只对标准 Codex 客户端开放接入,出现这个提示说明请求被判定为非标准客户端。常见触发场景:
- 用 Python / Node 的 openai SDK 直接调用平台 API
- 请求先经过自建中转、二次分发的 API 网关再转发过来
- 客户端版本过旧
按顺序处理:
- 换回标准 Codex 客户端(Codex CLI / VSCode 插件 / Codex App)发起请求
- 把客户端升级到最新版本;用 CC-Switch 的同时也升级 CC-Switch 本体
- 确认请求路径上没有额外的 API 转发层
- 仍不行就联系客服,把报错里的
request id一起提供
通过 CC-Switch 使用时,报错会显示成 CC Switch local proxy failed while handling Codex endpoint /responses,其中 cause 字段是同一段文案——属于同一个问题,按上面步骤处理即可。
token quota is not enough / 用户额度不足 错误
报错 token quota is not enough,或 403 Forbidden 提示用户额度不足、剩余额度为负数,说明账号额度不够了,不是接口故障。报错里的 token remain quota 是剩余额度,need quota 是本次请求需要的额度;剩余额度为负表示已经超出。
包月套餐不是无限用量,而是按周给固定额度,见周限额度怎么算?。
可以先重试或新建会话;仍然报错就是额度确实不够,需要续费、购买加油包或升级套餐。
429 Too Many Requests 错误
先看完整报错再判断,两种 429 不是一回事:
exceeded retry limit, last status: 429 Too Many Requests:Codex 客户端重试次数用完了,不是平台 RPM 限流。上游偶发 429(含官方容量不足)时客户端会自动重试,次数打满就报这句。稍等再发,或换个模型。详见常见问题解答。当前令牌已达到 RPM 限制:1分钟内最多请求40次:这才是触发了平台 RPM 限制。所有套餐都是 RPM = 40(每分钟最多 40 次请求),等一会儿再试即可。
400 错误
看报错里的具体文案分辨:
模型 xxx 不支持 chat completions 协议:Codex 系列模型走的是 Responses 协议(/v1/responses),不是/v1/chat/completions。在客户端里把接口协议改过来——Codex CLI 的config.toml用wire_api = "responses",CC-Switch 里选openai-responses。System messages are not allowed:客户端(如 OpenClaw 等第三方工具)发送了 system 角色的消息,而当前模型不接受这种消息。换一个模型试试,或联系客服确认该模型支持的消息格式。Your input exceeds the context window of this model:上下文超长,见上方条目。
204 No Content
204 不是错误。它表示"请求已成功处理,但没有返回内容",在浏览器 F12 的 Network 面板里很常见(统计上报、预检请求等都会是 204)。
只要页面功能正常,就不用管它。如果页面确实有功能不工作,按界面上的实际报错排查,或先看服务运行状态确认服务端是否正常。
历史聊天记录不见了
分两种原因:
- 切换过 API 平台,或在平台账号与官方账号之间切换过:记录没丢,Codex 按 provider 名称隔离历史,只要
config.toml里 3 个相关的值和之前一致就能找回,见恢复聊天记录。 - 刚升级过 VSCode 插件:属于插件自身问题,见上方 5.1 历史会话丢失。