排障手册
本页收集 Codex 使用中的常见问题。欢迎通过 PR 持续补充。
Codex 找不到项目上下文
可能原因:
- 你不在项目根目录.
- 仓库缺少 README、测试命令或项目说明.
- monorepo 没有说明包边界.
处理方式:
- 先让 Codex 只读目录并总结项目结构.
- 添加或更新
AGENTS.md. - 在任务说明里指定相关目录.
Codex 改动范围太大
处理方式:
- 明确“只修改这些文件”.
- 要求“先输出计划,不要动手”.
- 把任务拆成更小的步骤.
- 在 review 时拒绝无关重构.
测试跑不起来
处理方式:
- 让 Codex 先定位测试命令.
- 检查依赖是否安装.
- 区分环境问题和代码问题.
- 如果是环境问题,让 Codex 记录阻塞,而不是继续乱改.
生成内容不准确
处理方式:
- 要求 Codex 引用它依据的文件.
- 对官方事实要求附链接.
- 让它区分“已确认”和“推测”.
- 让它先读代码再写文档.
登录或权限问题
处理方式:
- 更新 Codex CLI 到最新版本.
- 重新运行登录流程.
- 检查当前账号计划和组织策略.
- 查看官方 Help Center 的 Codex 相关文章.
Desktop 一直显示 Reconnecting
Reconnecting 不是一个具体根因。它可能是主连接、会话恢复、WebSocket / SSE 流、代理协议、MCP worker 或服务端临时问题。不要一开始就重装 Codex、覆盖 config.toml,或者直接换账号。
先按三层判断:
| 层级 | 现象 | 先做什么 |
| --------- | ---------------------------------------- | ------------------------------ |
| 主连接 | 新线程也一直 Reconnecting | 验证 Codex 进程能不能走到正确代理 |
| 会话流 | 偶发 stream disconnected before completion | 看是否是旧会话、WebSocket/SSE 或服务端连接问题 |
| 工具 worker | 主界面恢复,但 MCP、Browser、node\_repl 仍失败 | 再查 config.toml 里的 MCP 环境变量 |
如果你使用 macOS 代理:
``
scutil --proxy
launchctl getenv HTTP_PROXY
launchctl getenv HTTPS_PROXY
curl -sS --max-time 10 -x "http://127.0.0.1:
`
端口和协议都验证通过后,再把最小代理变量放进 ~/.codex/.env,然后完全退出并重新打开 Codex Desktop:
`
export HTTP_PROXY="http://127.0.0.1:
export HTTPS_PROXY="http://127.0.0.1:
export ALL_PROXY="http://127.0.0.1:
export NO_PROXY="localhost,127.0.0.1,::1,*.local"
`
网上有 macOS 一键脚本会自动读取 scutil --proxy 并更新 ~/.codex/.env。可以把这类脚本当模板,但运行前至少确认它会备份原 .env、用 curl -x 验证代理协议、不会覆盖其他 secret,并且明确只适用于 macOS。
如果你使用 Windows 或 WSL:
- Windows 原生 Desktop 优先检查 Windows 用户环境变量.
- WSL 模式不要只写 ~/.bashrc
,因为 Desktop 启动 WSL 进程时不一定经过 login shell. - 修改环境变量后完全重启 Codex.
`
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://127.0.0.1:
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:
`
如果主界面已经恢复,但 MCP 或 node\_repl 仍然断,再检查 MCP server 是否需要单独配置环境变量:
`
[mcp_servers.node_repl.env]
HTTP_PROXY = "http://127.0.0.1:
HTTPS_PROXY = "http://127.0.0.1:
NO_PROXY = "localhost,127.0.0.1,::1,*.local"
`
日志位置:
- macOS app logs:~/Library/Logs/com.openai.codex/YYYY/MM/DD
- 会话记录:$CODEX_HOME/sessions
,默认~/.codex/sessions
发 issue 或群里求助时,只贴脱敏后的错误字符串、时间点、Codex 版本、平台和网络拓扑。不要公开完整日志、邮箱、account id、conversation id、session id、真实出口 IP、本机路径、私有仓库名或 token。
Windows 桌面 App / CLI 专项排障
如果问题发生在 Windows 桌面 App、Microsoft Store / winget 安装、Windows sandbox、Worktree、Browser / Computer Use 插件、WSL 混合路径或 PowerShell 环境,可以参考社区维护的 Windows 专项排障库:
这个项目会把 Windows 报错按证据等级、复现等级和 workaround 状态整理,并提供只读诊断脚本。提交日志、截图或诊断输出前,请先脱敏用户名、路径、私有仓库名、token 和账号信息。
切换 provider 后旧会话不可见
可能原因:
- 修改过 config.toml
根级model_provider. - 旧会话文件还在,但会话 metadata、SQLite 状态或项目路径缓存仍指向旧 provider.
- CLI /resume
能看到旧会话,但 Codex Desktop 项目侧看不到,可能只是 Desktop 最近 50 条会话的首屏显示限制.
处理方式:
- 先确认 ~/.codex/sessions
或~/.codex/archived_sessions里是否还存在旧会话文件. - 如果只是 Desktop 项目侧不可见,先判断是否被最近 50 条显示限制挡住.
- 如果确认是切换 provider 后 metadata 不一致,再参考 config.toml 里的社区工具说明.
- 使用第三方工具前先备份 ~/.codex`,不要把它当成官方认证或账号切换工具.
下一步
下一步:实战案例库。