💡 **这篇解决什么问题:**消息发出去一直转圈、自己进了队列或直接消失;Codex 面板卡死但 VS Code 本身正常;历史列表里找不到旧会话;登录失败、
codex: command not found、MCP 不工作。这篇先给一套通用的排查顺序和症状速查表,再按症状逐个讲:怎么判断是不是工具本身的故障、有哪些已验证的临时办法、哪些操作千万别做。
更多 Codex 文章:省点力 · Codex 小类
大家卡在哪里
先按症状区分三类故障,再核对版本、日志和本地记录:
- 消息发不出去、卡住:输入指令后一直转圈、进入等待队列,甚至消息消失。2026 年 10 月 1–3 日多名用户报告了类似情况(GitHub #49991、#50118)。
- 插件卡顿,VS Code 本身正常:Codex 面板停止响应,有用户记录了扩展进程阻塞、消息积压、服务器过载的日志(#22393)。
- 历史会话突然找不到:旧聊天没有出现在 VS Code 历史列表里,但部分用户检查后发现本地数据库和会话文件都还在(#21244)。
另外两个痛点(复杂改动难以一次做对、上下文和任务要求容易混乱)见 Codex 改代码不翻车:权限、分支、Diff、测试和 Code Review 和 Codex 长任务和大项目:计划文件、Goals、会话管理、并行、云端与额度。
还有几条背景:
- VS Code 插件在 Windows 上曾长期标记为 experimental,偶尔卡顿、MCP 服务出问题都比较常见。
- 2026 年 10 月初那批消息队列问题是具体版本的故障,不能简单归咎于用户不会操作。所以遇到问题,先别怀疑自己,也别急着折腾环境。
- 先读对应的 GitHub Issue,核对版本、环境和复现条件;不要在没有依据时反复改配置。
一、出问题先做这 6 件事
- 确认版本。在 VS Code 扩展面板里看 Codex 插件(
openai.chatgpt)的版本号;用 CLI 的话,在终端运行codex --version。后面所有判断都靠版本号。 - 去 GitHub 搜一下。到 openai/codex 的 Issues 搜你的版本号或症状关键词。如果一堆人在同一天报了同样的问题,基本可以确定是版本故障,等修复或回退版本就行。
- 先保存日志,再重启。很多故障一重启就暂时好了,日志也跟着不好找。先把日志存一份(位置见第四节),反馈问题时用得上。
- 别删
.codex文件夹,也别急着清缓存。你的会话记录、配置都在里面。历史“消失”很多时候只是列表没显示,本地记录还在不等于数据丢失(见第五节)。 - 敲一下
/status。确认当前模型、权限、工作目录、上下文剩余量。很多“它怎么不干活了”其实是模型没切成功、处在只读模式、目录不对,或者对话太长了。新手排查问题,第一反应就是/status。 - 卡住的当下先提交反馈。有用户在会话还卡着的时候提交了反馈,拿到一个 Feedback ID 附在 GitHub issue 里。卡住时提交,官方能拿到的现场信息最完整;重启以后再提交,现场就没了。
二、症状速查表
| 你看到的症状 | 最可能的原因 | 先试 | 详见 |
|---|---|---|---|
| 普通消息发出去一直转圈,或显示成 steer/pending 状态 | 2026 年 10 月某几个插件版本的队列故障 | ↑ 键找回文字再按 Enter,重试 2–3 次;Reload Window | 第三节 |
| 上一轮已经完成,新消息却被放进队列不发出 | 同上(线程卡在“还在输出”状态) | 重启 Extension Host;完全退出 VS Code 再打开 | 第三节 |
| 发出去的消息直接消失 | 同上 | 按 ↑ 键,文字往往还在输入历史里 | 第三节 |
| 整个 Codex 面板没反应,但 VS Code 其他功能正常 | Windows 上扩展进程阻塞、消息积压 | Reload Window 或重启项目窗口;保存日志 | 第四节 |
| 一个普通任务跑着跑着停了,不报错、不出结果 | 同上 | 记下 Feedback ID,再重启项目窗口 | 第四节 |
| 历史列表里找不到旧会话 | 列表和本地索引不同步,数据一般还在 | 按会话 ID 直接打开;别改本地文件 | 第五节 |
| 浏览器授权后回到终端提示失败 | 网络、浏览器缓存、登录状态 | 检查网络、清缓存、codex logout 后重登 | 第六节 |
codex: command not found | 没装好,或 npm 全局路径不在 PATH 里 | 重装、检查 npm config get prefix | 第七节 |
| 配了环境变量还是提示找不到 | 没有完全重启 | 完全退出 Codex 再打开,不行就重启电脑 | 第八节 |
| 接了第三方模型,连得上但跑不起来 | 平台不支持 Responses API | 换支持 Responses 接口的模型或平台 | 第八节 |
| MCP 加了但不起作用、日志里一堆 MCP 报错 | 配置没生效、会话没重开,或 Windows 已知问题 | 看 config.toml、开新会话、在提示词里点名 | 第九节 |
三、消息发不出去、一直转圈、自己进了队列
这是 2026 年 10 月初最集中的一批故障。2026 年 10 月 1 日插件自动更新到 26.928.31416 之后,很多人的 Codex 面板开始“时好时坏”。
典型症状
- 一条普通消息,没做任何插话(steer)操作,却显示成 steer/pending 的等待状态;
- 消息一直转圈,永远完成不了;
- 消息发出去之后整条消失;
- 界面看起来像上一轮还没结束;
- 上一轮明明已经完成,新消息还是被放进了队列,不发出去;
- 队列里的消息从界面上消失,但按 ↑ 键能把文字找回到输入框,说明它还在输入历史里;
- 队列终于放行时,你之前重复发的几次会变成好几条重复的用户消息;
- 截图里能看到同一条追问被排了两份,挂在上一轮回复下面;
- 有用户反馈它连键盘输入都会吞掉,快捷键失灵;
- 严重时一条消息都发不出去,反复尝试也只是继续排队或被丢掉,只能退出重开 VS Code。
频率因人而异:有人说“大约每隔几条消息就出现一次”,有人说“差不多每隔一条”,也有人说是间歇性的,卡了一次后,下一条又能正常发出去。简单的聊天提示就会触发,最小的 type ok 也会,不一定要让它写程序。
受影响的版本和平台
| 插件版本 | 平台 / 备注 |
|---|---|
| 26.928.31416 | Windows、Ubuntu;10 月 1 日更新后开始出问题 |
| 26.928.40906 | macOS Intel、Windows |
| 26.5928.31416(预发布版) | Linux、Apple M1 Pro;切到预发布通道也没用 |
| 26.930.21537 | Windows,稳定版 |
| 26.930.31428 | Windows |
| 26.930.31730 | Windows,自带 codex-cli 0.160.0 |
所以这不是某个系统独有的问题。Windows、macOS(Intel 和 M1)、Ubuntu/Linux 都有人复现,稳定版、预发布版都中招。
日志里长什么样
打开 Codex 的日志(位置见第四节)搜这几行,能帮你判断是不是同一个故障:
latestTurnStatus=completed同时markedStreaming=true:这一轮已经完成,线程却还被标记成“正在输出”,所以下一条消息就排进了队列。Failed to release queued message send lock ... "undefined" is not valid JSON:最常见的一条警告。Received broadcast but no handler is configured method=thread-queued-followups-changed:队列变化的广播没人处理。httpStatus=403、cloudflare_challenge:也经常一起出现,但报告者明确说没有证据证明它和队列故障有因果关系。
关于那条 not valid JSON 警告,有用户把插件里的相关代码抽出来单独测试,结论是:这是锁已经成功释放之后的一个响应解析失败,单凭这条警告不能说明锁没释放;只修这一处,也不能证明就能解决所有卡队列的问题。
同一位用户还只读查看了 VS Code 的 User/globalStorage/state.vscdb(键 openai.chatgpt → queued-follow-ups),发现 6 个对话里留着 9 条队列记录,其中好几条其实早就被会话历史接收了,只是本地队列没清掉。这说明本地队列状态和真实会话历史对不上了。他特别说明,诊断过程中没有修改插件文件和这个数据库。你也不要去改它。
先试这些临时办法
从轻到重:
- ↑ + Enter 重试:按 ↑ 把刚才的文字找回来,再按 Enter。有用户说要这样重试 2–3 次才能发出去;也有人说一条消息要发大约 3 次才能成功。
- 用 Ctrl+Enter 发送:有用户提到,Codex 工作中只按 Enter,消息会消失(这是 2–3 个月前就有的老 bug);改用 Ctrl+Enter,最多是界面卡住,至少消息不会丢。
- 开一个新会话:用新会话判断问题是否只影响当前线程;先保存原任务和日志,别删除旧会话。
- Reload Window:在 VS Code 命令面板(Ctrl+Shift+P)里运行 “Developer: Reload Window”。
- 重启 Extension Host:相关的 #50084 标题就是“重启 Extension Host 能修好”。命令面板里运行 “Developer: Restart Extension Host”。
- 完全退出 VS Code 再打开:有用户说“有时 Reload Window 就行,有时要彻底关掉 VS Code 再开”。也有人说重启后照样复发,所以这只是临时办法。
- 回退插件版本:有用户说“回退到上一个版本立刻就好了”。在 VS Code 扩展面板里点 Codex 插件的齿轮图标,选 “Install Specific Version…” 选旧版本。代价是:回退到 26.917.62051 能用,但这个版本不支持 GPT-6.1 Sol。
- 回退后关掉这个插件的自动更新:不然它很快又会自己升回有问题的版本。等 GitHub 上确认修复了再打开。
注意:重载、开新会话、回退版本这些都只是个别版本的临时办法,没有证据证明适用于所有情况。
试过但不是根因的
- 更新 Git:有用户的旧版 Git 不支持 Codex 记录改动时用的
git add --sparse。更新 Git 解决了这个不兼容,但卡队列的问题还在,说明 Git 不是根因。不过 Git 太旧本身也会出别的问题,顺手更新一下没坏处。 chatgpt.followUpQueueMode设成queue或steer:两种设置下都有人复现,改这个设置没用。- 切到预发布版:有用户试了预发布通道,照样出问题。
- 降级 CLI:有用户临时装过旧版 CLI,又升回了 0.160.0;插件本身没降级成功,问题也没解决。这次的问题在插件这一侧。
相关 issue
- #49991 已被官方当作 #49988(“更新后插件间歇性丢消息”)的重复问题关闭,想跟进修复进度可以看 #49988 和 #50118。
- 其他同类报告:#49943(Cloudflare 403 + 队列锁失败)、#49949(几条消息后卡在转圈)、#49968(追问卡在队列,重启后上一条又被执行一遍)、#49955(上一条回复完了,追问还在等)、#50047(反复卡住,队列锁 JSON 报错)、#49854(追问一直显示发送中)、#49975、#50084(重启 Extension Host 能修好)、#50365(队列代码的进一步分析)。
四、插件整体变慢、面板卡死(Windows)
这一类和第三节不同:不是某条消息发不出去,而是整个 Codex 面板变得很慢甚至没反应,VS Code 本身却是正常的。主要出现在 Windows 上(#22393)。
典型症状
- VS Code 报 Extension Host 无响应;
- 只跑一个普通任务也会卡;
- 开新会话也照样卡;
- 最后一个命令明明执行完了,之后就不再思考、不再执行命令、也不给最终回答,用户也没有打断它;
- 本地的
codex.exe进程还在,没有超时,没有服务器报错,额度也没用完; - 事后再看,这些会话显示
turn_aborted,原因是interrupted; - 独立的 Codex Windows App 也有同类问题,所以不只是 VS Code 插件的 bug,很可能是 Windows 上 App 和后台服务通信的共同问题。
报告时的版本:插件 26.506.31421 + codex-cli 0.130.0;插件 26.715.61943 + codex-cli 0.145.0-alpha.27(Windows 11、VS Code 1.129.1)。
日志里长什么样
outbound queue is full:一次观察里出现了 946 次,另一次 1032 次。Server overloaded; retry later:248 次、106 次。- 插件列表、遥测请求被 Cloudflare 403 拦截。
- MCP 报
-32601: Method not found:MCP 服务器没实现资源列表这类可选功能时就会出现,属于噪音,不一定是故障原因。 - 非英文 Windows 上,
taskkill输出的本地化文字(比如葡萄牙语的结束进程提示)被当成 JSON 去解析,导致解析失败。 - 不支持的功能开关
workspace_dependencies:插件想开启这个功能,自带的后台服务却不支持,反复报错。 - 你没装 WSL,它也在跑
wsl.exe --status:启动时会去探测 WSL,没装就报错。
Reload Window 之后,同一台机器上的 outbound queue is full 和 Server overloaded 都降到了 0,但过一阵可能又回来。
日志在哪里
Windows 上的 VS Code:
%APPDATA%\Code\logs\<session>\window1\renderer.log
%APPDATA%\Code\logs\<session>\window1\exthost\openai.chatgpt\Codex.log
%TEMP%\exthost-*.cpuprofile
<session>是一次 VS Code 启动对应的文件夹,按时间找最新的。exthost-*.cpuprofile是 VS Code 检测到 Extension Host 无响应时自动生成的性能记录。
Windows 上的 Codex App:
%LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\Codex\Logs
CLI 可以在 config.toml 里设 log_dir 指定日志目录,设了之后还会生成纯文本的 codex-tui.log,见 一次配好 Codex:AGENTS.md、config.toml、Skills 与 MCP。
快速数一下日志里的关键报错
下面这段 PowerShell 只读取日志、不改任何东西,用来数几种关键报错出现了多少次(路径换成你自己的):
$log = "$env:APPDATA\Code\logs\<session>\window1\exthost\openai.chatgpt\Codex.log"
"outbound queue is full","Server overloaded","not valid JSON","cloudflare_challenge","markedStreaming=true" | ForEach-Object {
"{0}: {1}" -f $_, (Select-String -Path $log -SimpleMatch $_).Count
}
数字大说明问题严重,反馈时可以附上。注意这只是一个时间点的快照,不是报错频率。
临时办法
- Reload Window,或者重启这个项目的 VS Code 窗口,能暂时恢复。
- 卡住时先提交反馈、记下 Feedback ID,再重启。
- 用 WSL 的话,相关设置是
chatgpt.runCodexInWindowsSubsystemForLinux。报告者希望不用 WSL 时插件别去探测 WSL,这需要官方修复。 - 报告者自己改了插件安装包里的代码来绕开 WSL 探测,普通用户不建议这样做:插件一更新就会被覆盖,改坏了还更难排查。
相关 issue:#21806(Remote-SSH 下面板间歇性卡住)、#19437(Windows App 启动白屏/转圈,workspace_dependencies 循环报错)、#19366(反复拉取连接器图标导致 Server overloaded)、#20599(WSL 下后台服务 CPU 占用 70–90%、outbound queue is full)。
五、历史列表里找不到旧会话
先别慌:数据一般还在
#21244 的报告者(插件 openai.chatgpt@26.429.30905、codex-cli 0.128.0、VS Code 1.118.1 arm64)发现:VS Code 的历史列表时不时会漏掉一些旧会话,但这些会话其实都还在本地:
- 在本地 SQLite 状态数据库
~/.codex/state_5.sqlite里; - 有对应的会话记录文件
~/.codex/sessions/.../rollout-*.jsonl; - 至少有一次还出现在
session_index.jsonl里; - 按本地会话 ID 直接打开,就能找回来。
所以这是列表显示的问题,不是数据丢了。
怎么找回
- 按会话 ID 打开。CLI 用
codex resume <会话ID>。有人报告codex resume --all列不出某些本地会话,但用resume <session-id>照样能打开(#20165)。 - 只读搜索本地记录。记不住 ID 的话,可以在
~/.codex/sessions/里按关键词搜rollout-*.jsonl文件,找到对应会话再按 ID 打开。只读、只搜,不改。 - 第三方工具:有开发者做了一个 Mac 工具 Codex Migrate,可以只读搜索本地会话记录并导出找到的对话。它是非官方的,不会修复侧栏列表,也可能漏掉一些格式的记录,用之前自己判断。
千万别做
- 别手动改 JSONL 和 SQLite 文件。一位评论者的原话是:既然 JSONL 和 SQLite 记录都是完好的,就别为了让侧栏重新显示而去编辑它们。按 ID 打开是官方修好之前的兜底办法,但记不住 ID、也记不清是哪个会话时就帮不上忙。
- 别删
.codex文件夹、别清缓存。删了才是真的没了。
跨设备时的另一种情况
有用户在 Windows 上用同一个会话跑 /goal,在 VS Code 和 Codex Desktop 之间切换:切出去再回来,两边都显示成几条消息之前的旧状态;Goal 栏还显示“进行中”,最后一轮却像被打断了,会话状态显示 notLoaded。实际上本地 rollout 文件里历史完整,还在继续变长,说明后台还在干活,只是界面没同步。这时界面上的状态不可信,可以看本地 rollout 文件是不是还在变大,来判断它是不是还在干活。
以后怎么防
- 重要会话记下会话 ID(CLI 界面会显示),比靠回忆或翻聊天记录快得多。
- 一个会话只做一件事,起个好认的开头,回头搜关键词也容易。
- 会话管理的完整做法(
/resume、/fork、/compact等)见 Codex 长任务和大项目:计划文件、Goals、会话管理、并行、云端与额度。
相关 issue:#20340(session_index.jsonl 和 state_5.sqlite 不同步,历史变空白)、#19822(本地历史索引过期,最近的会话没法恢复)、#19603(希望插件侧栏和 CLI 的恢复列表规则一致)、#20624(插件打开旧会话时静默失败)、#20165。
六、登录失败
表现:浏览器里授权完成,回到终端却提示失败。
按顺序试:
- 检查网络连接;
- 清除浏览器缓存再试;
- 执行
codex logout,然后重新登录; - 换用 API Key 的方式登录。
登录方式本身(个人账号、公司 SSO、CLI 和插件共享登录)见 Codex 第一次上手:装对插件、登录成功、选对入口。
七、codex: command not found
表现:终端里提示 codex: command not found。
先重新安装:
npm install -g @openai/codex
再看 npm 的全局安装路径:
npm config get prefix
确保这个路径在你的 PATH 环境变量里。装好后运行 codex --version,能看到版本号就说明好了。
Windows 用户如果 PATH 配置很麻烦,建议先用 App,不要卡在 CLI 环境上。VS Code 插件也不依赖 CLI,可以单独用。
八、配了环境变量还是找不到 / 第三方模型跑不起来
- Windows 上改完环境变量,要完全退出 Codex 再打开才生效;还不行就重启电脑。
- 接国内模型时注意:Codex 新版本使用 Responses API,不支持
wire_api = "chat"配置。平台如果只兼容 Chat Completions,就会出现“连得上但跑不起来”。很多厂家还没适配,能选的模型不多,能跑就用,跑不起来就换平台。具体怎么接见 一次配好 Codex:AGENTS.md、config.toml、Skills 与 MCP。
九、MCP 不工作
- 确认配置真的写进去了:用
codex mcp add添加后,打开config.toml看看有没有对应的配置。 - 开一个新会话再试:添加 MCP 后,用新会话检查服务是否成功加载;原会话未必已经读取新配置。
- 在提示词里点名让它用:比如“先去 Context7 查这个库的最新文档”。想让它每次都记得,写进全局
AGENTS.md。 - 分清噪音和真故障:日志里的
-32601: Method not found多半只是这个 MCP 服务器没实现资源列表这类可选功能,不一定代表它坏了。 - Windows 上的已知问题:非英文系统里,
taskkill的本地化输出会混进 MCP 的 JSON 解析,导致解析失败(#22393)。这是工具的问题,反馈即可,不用自己折腾。 - 想想是不是真的需要 MCP:计划、进度这类信息,放一个提交进 Git 的 Markdown 文件往往就够用了,见 Codex 长任务和大项目:计划文件、Goals、会话管理、并行、云端与额度。
MCP 的配置和用法见 一次配好 Codex:AGENTS.md、config.toml、Skills 与 MCP。
十、Windows 用户专项清单
- 插件在 Windows 上曾长期是 experimental,卡顿、MCP 出问题都比较常见;遇到了先查 GitHub,别急着重装系统环境。
- 沙箱推荐
elevated;没有管理员权限或elevated设置失败时再用unelevated,见 Codex 第一次上手:装对插件、登录成功、选对入口。 - CLI 的 PATH 配不好就先用 App 或 VS Code 插件。
- 改了环境变量要完全退出 Codex 再打开,不行就重启电脑。
- 面板卡死先看第四节的日志位置,保存日志后再 Reload Window。
- 没装 WSL 也会看到
wsl.exe --status的报错,这是已知问题,不影响你自己的环境。 - 非英文系统(比如中文、葡萄牙语 Windows)可能遇到本地化输出导致的解析失败,同样是已知问题。
十一、怎么提一个有用的反馈
在 openai/codex 提 issue 前,先搜一下有没有同样的问题。有的话在下面补充你的情况,比新开一个更有用。
写清楚这几项:
- 版本:插件版本(比如
openai.chatgpt-26.930.31730-win32-x64)、自带的 codex-cli 版本、VS Code 版本; - 平台:Windows / macOS(Intel 还是 Apple 芯片)/ Linux,本地还是 Remote-SSH / WSL;
- 怎么复现:做了什么、预期是什么、实际看到什么;是每次都出现还是间歇性的;
- 日志:只贴相关的几行,按第四节的方法数一下关键报错的次数;
- Feedback ID:卡住时提交反馈拿到的那个。
注意脱敏:别贴 token、API Key、账号信息;会话 ID、请求 ID、本地路径这些也最好替换成 <redacted>,GitHub 上的报告者都是这么做的。只说你确认过的事,没验证的结论标明是推测。