Repository navigation
Codex Desktop on Windows repeatedly restarts while resuming an old thread and enumerating MCP tools #21761
Description
Summary
Codex Desktop on Windows repeatedly showed a crash/restart dialog with exit code 3221225786 (0xC000013A) after a sequence involving:
- enabling/inspecting the
/goalfeature, - resuming an older large rollout thread,
- parsing a historical
thread_name_updatedevent, - and enumerating MCP tool/status data while an Ouroboros MCP server was registered.
The visible "Most recent error" in the crash dialog was usually an incidental WARN, for example Failed to create shell snapshot for powershell, but local logs suggest the more relevant sequence is a thread resume / rollout parse / MCP enumeration path.
Environment
- OS: Windows 11 Pro
- Shell: PowerShell
- Codex Desktop app version in logs:
0.129.0-alpha.15 - Codex client name in logs:
Codex Desktop - App server API version in logs:
v2 - Model in the affected session:
gpt-5.5 - MCP servers at the time included:
obsidian,codex_apps,node_repl,ouroboros,xcodebuildmcp,cloudflare-api
Observed behavior
Codex Desktop repeatedly displayed:
Codex crashed with:
(code=3221225786, signal=null)
The "Most recent error" varied and often pointed to WARN-level log entries, including:
Failed to create shell snapshot for powershell: Shell snapshot not supported yet for PowerShell
Other incidental WARN entries included plugin/skill metadata warnings such as:
ignoring interface.icon_small: icon path must not contain '..'
ignoring interface.defaultPrompt: maximum of 3 prompts is supported
Those WARN entries appear to be symptoms/noise rather than the root cause.
Relevant timeline
All times are UTC.
2026-05-08T13:16:17Z:ListToolsRequestappears after Ouroboros MCP registration.2026-05-08T13:16:19Z: Ouroboros MCP logscodex_cli_runtime.initializedandRegistered 25 tools.2026-05-08T13:18:34Z: User requested Ouroboros to be manual-only.2026-05-08T13:21:23Z: Local.codexsearch for goal/goals was run; one search timed out after about 70 seconds.2026-05-08T13:23:25Zto13:23:35Z: app-server process restarted several times whilemcpServerStatus/list,skills/list, andListToolsRequestactivity appeared.2026-05-08T13:28:42Z: app-server handledthread/goal/getandthread/resume.2026-05-08T13:28:42Z:thread/resumestarted for an old large rollout file:- thread id:
019d7d32-be6c-72a0-bafa-25856c359bd2 - rollout file date:
2026-04-12 - file size locally was about 1.59 GB
- thread id:
2026-05-08T13:28:44Z: rollout parser logged:
failed to parse rollout line: unknown variant `thread_name_updated`
2026-05-08T13:28:44Z: same resume reported:
Resumed rollout with 46218 items ... parse errors: 1
2026-05-08T13:28:48Z: session init logged a conversation start with 6 MCP servers, includingouroboros.2026-05-08T13:28:48Z:shell_snapshotWARN appeared. This is what the crash dialog surfaced as "Most recent error".2026-05-08T13:28:50Z: a new app-server process started and resumed the same thread again.2026-05-08T13:28:58Z: Ouroboros MCP tool list appeared again (ListToolsResultcontainingouroboros_execute_seed, etc.).
Important local evidence
The old rollout file contained exactly the newer/unknown event variant:
{"timestamp":"2026-05-04T12:26:57.512Z","type":"event_msg","payload":{"type":"thread_name_updated","thread_id":"019d7d32-be6c-72a0-bafa-25856c359bd2","thread_name":"CMO Lua script generation"}}The resume path logged:
failed to parse rollout line: unknown variant `thread_name_updated`
and still continued with:
Resumed rollout with 46218 items ... parse errors: 1
The crash dialog surfaced:
Failed to create shell snapshot for powershell: Shell snapshot not supported yet for PowerShell
but this warning had existed previously and did not appear sufficient to explain the restart loop by itself.
Expected behavior
- Unknown historical rollout event variants should be ignored or handled compatibly during
thread/resume. - A parse error in a historical event should not cause a restart loop.
- Goal checks (
thread/goal/get) and thread resume should not unnecessarily wake all registered MCP servers or enumerate tool lists if not required. - The crash dialog should distinguish a root-cause error from a last-seen WARN.
Actual behavior
- Codex Desktop repeatedly restarted or showed crash dialogs with
3221225786. - The dialog emphasized incidental WARN lines.
- The app-server repeatedly resumed the old large thread and initialized sessions with MCP servers present.
- Registered MCP servers, especially a heavy Ouroboros MCP server, were started/enumerated during this path even when the user did not explicitly call an MCP tool.
Mitigation that stabilized the local setup
The local setup became stable after:
- removing
[mcp_servers.ouroboros]fromconfig.toml, - keeping only
obsidianinmcp_servers, - changing local Ouroboros rules/skills to manual-only,
- and avoiding automatic Ouroboros MCP registration in Codex Desktop.
After that:
TOML_OK
mcp_servers=obsidian
has_ouroboros_mcp=False
Subsequent monitoring showed no new thread/resume, mcpServerStatus/list, ListToolsRequest, codex_cli_runtime.initialized, or Registered 25 tools events in the checked window.
Hypothesis
This looks like a Codex Desktop stability/compatibility issue around the interaction of:
thread/goal/get/thread/resume,- resuming a very large older rollout containing an event variant not recognized by the current parser,
- session initialization after parse errors,
- and background MCP status/tool-list enumeration.
The Ouroboros MCP server was likely not executing tools; local logs showed CallToolRequest count as 0 in the relevant analysis. The problem appears to be startup/listing/enumeration, not actual MCP tool execution.
Privacy note
This report intentionally omits account IDs, email addresses, auth headers, local secrets, and full local file contents.
Activity
github-actions commentedon May 8, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
banteg commentedon May 26, 2026
not sure if the same root cause, but i got the same error code. this thread started on windows gui codex crashes both gui and tui codex a few seconds into the next message

019e6433-4b1c-70b1-aba5-39840d3ef616MisterRound commentedon May 30, 2026
Adding current-build confirmation from a Windows Desktop + WSL incident on the 26.527 build family.
This same diagnostic failure still occurs: the fatal UI/log can present the last WARN as the apparent crash cause even when the app-server died while a thread operation was pending.
Sanitized environment:
OpenAI.Codex_26.527.x_x64__2p2nqsd0c76g0Observed sequence from Desktop logs:
A separate crash window in the same update cycle surfaced plugin icon validation warnings as the "Most recent error":
Those warnings may be legitimate cleanup bugs, but they were not a reliable RCA for the fatal condition. In this incident, following the surfaced WARNs led triage toward
thread_toolsconfig and plugin metadata, while the actual blocking path was app-server unavailability during large-thread resume/goal recovery.Related current issues:
/goalrollout becoming effectively unrecoverable after update.Concrete diagnostic ask: the fatal screen should separate exit code/signal, last ERROR/PANIC if present, last WARNs clearly labeled as non-causal, pending request methods such as
thread/resume/thread/goal/get, and whether restart recovery succeeded. A last WARN should not be promoted to "Most recent error" without evidence that it caused process exit.cedric-albeke commentedon Jun 2, 2026
Adding a related Windows Desktop observation from the 26.527 build family.
Environment:
OpenAI.Codex_26.527.7698.0_x64__2p2nqsd0c76g0Failure pattern:
node_repl.exeprocesses, each with a childcodex.exe app-server --listen stdio://.resources\codex.exe app-server --analytics-default-enabledprocess.The important part: disabling the visible browser plugin config alone was not sufficient. After restart,
node_replstill spawned, and the explicitenabled = falseI had added under[mcp_servers.node_repl]was removed/ignored.Mitigation that stabilized the app:
security-guidancehook plugin to avoid repeatedpwsh -> bash -> wslhook chains.node_repl.exeand its direct childcodex.exe app-server --listen stdio://.node_repl.exebinaries under%LOCALAPPDATA%\OpenAI\Codex\bin.After this, Desktop became much more stable and agent task processing became dramatically faster. The tradeoff is that internal browser/computer-use automation is unavailable, but normal chat/task execution continues.
This may be relevant to app-server restart/recovery diagnostics because the
node_replpath can create additional app-server child processes that are easy to confuse with the main Desktop app-server during crash/freeze analysis.T-Higgins commentedon Jun 7, 2026
I am having these issues too. The thread_tools one is the most common one. I have had to stop using the Desktop app completely. I also had to roll back two versions of the VS Code extension too
boombx403-byte commentedon Aug 18, 2026
Hi @jun5896, regarding the missing tool output / unfinished call state in the transcript, Codex Rescue Alpha5 has bounded tool-correlation diagnostics to detect persisted correlation anomalies and incomplete turn boundaries without assuming non-execution.
To inspect the rollout locally and safely in read-only mode:
No private files need to be uploaded; please sanitize any repository details before sharing diagnostic output.