最近遇到一个挺离谱的 Codex 问题,感谢佬友解答启发,弄了一下午终于解决了,记录一下,如果有类似情况的佬友可以参考。
502报错
用命令行指定中转站启动 Codex,一切正常,但是只要我直接双击官方 Codex 图标打开桌面端,就会一发消息就 502,提示:
unexpected status 502 Bad Gateway: Unknown error, url: http://127.0.0.1:8080/v1/responses
改动config.toml并设置只读也无济于事。一开始以为是中转站或者 ccswitch 的问题,后来排查发现原因比较复杂。
报错原因
(一)有多套 codex
where codex
能看到 npm 全局版、旧 Node 全局版、官方 WindowsApps 版。也就是说我以为自己一直在用同一个 Codex,其实不同启动方式命中的不是一条链路。 ![]()
(二)npm 的全局路径被改过
npm 的全局路径也被我改过,.npmrc 里有自定义 prefix,导致 npm 装的 Codex 抢在官方版前面。
(三)旧线程
Codex 桌面端不只是读 ~/.codex/config.toml。它还会在本地状态里记住旧线程的 provider/model、上次工作区之类的东西。所以哪怕 config.toml 已经改成直连中转站,中间有些旧线程还是会继续按 ccswitch 或旧模型跑。
而我这边实际稳定可用的是 openapi.center + gpt-5.4(我这边 gpt5.5 能用但是有时候不稳定),桌面端有些线程还残留着 ccswitch / gpt-5.5。
所以就出现了 CLI 明明能用,官方图标一打开就 502 的情况。
解决方式
最后我是这么解决的:
- 清掉 npm 全局安装的 Codex,避免 PATH 抢入口
- 删除 .npmrc 里自定义的 npm prefix
- 把 ~/.codex/config.toml 固定成 openapi.center + gpt-5.4
- 清理修正 Codex 本地线程状态里残留的 ccswitch/gpt-5.5
- 修正桌面端默认工作区
反思总结
真的真的要非常注意npm 全局包、PATH、WindowsApps、桌面端本地状态的问题。
另外 Codex 这种工具也要注意:旧线程可能会记住当时的模型和 provider。全局配置改好了,不代表旧对话一定跟着改。
总结就是表面是中转站 502,实际是多套 Codex 入口 + PATH 污染 + 旧线程状态残留 + Codex 本地状态叠在一起的组合坑。 ![]()
萌新记录,佬友如果觉得有用的话求留下一个赞,想升级哈哈。
1 个帖子 - 1 位参与者