Repository navigation
Codex Desktop intermittently crashes/resets on macOS with auth_elicitation feature mismatch and unknown conversation state #23725
Description
Summary
Codex Desktop on macOS is intermittently crashing / disappearing and sometimes appears to reset windows or conversations. I do not see a fresh macOS .ips crash report or Crashpad dump, but the Codex desktop logs repeatedly show an app-server / renderer state mismatch:
unsupported feature enablement auth_elicitationReceived turn/started for unknown conversationReceived turn/completed for unknown conversationItem not found in turn state
The issue persisted after reinstalling Codex via Homebrew and rotating a very large ~/.codex/logs_2.sqlite file.
Environment
- Product: Codex Desktop
- Codex Desktop app bundle:
com.openai.codex - Codex Desktop app version:
26.513.31313 - App bundle version:
2867 - CLI version after reinstall:
codex-cli 0.130.0 - Install/update path used during troubleshooting:
brew reinstall codex - OS: macOS
26.5build25F71 - Arch:
arm64 - RAM: 8 GB
- Date observed: 2026-05-20
What I tried
- Quit Codex.
- Rotated
~/.codex/logs_2.sqlite, which had grown to roughly789M. - Removed
~/.codex/logs_2.sqlite-shmand~/.codex/logs_2.sqlite-wal. - Reinstalled Codex:
brew reinstall codexHomebrew reported:
Cask codex (0.130.0) verified
codex was successfully installedAfter reopening and using Codex, the app still intermittently crashed / reset. A newly-created log DB had already grown again:
~/.codex/logs_2.sqlite 96M
~/.codex/logs_2.sqlite-wal 45MExpected behavior
Codex Desktop should remain open and should keep conversation / turn state consistent across active windows and turns.
Actual behavior
The app intermittently crashes / disappears / resets, without a fresh macOS diagnostic crash report. Logs show repeated app-server protocol/state mismatch errors.
Log evidence
No fresh Codex .ips crash report was found under ~/Library/Logs/DiagnosticReports; the only recent entry there was unrelated (node-2026-05-18-203256.ips). Crashpad only contained settings.dat.
After reinstalling, Codex logs still show this feature enablement mismatch on startup:
2026-05-20T15:54:50.814Z error [electron-message-handler] Request failed conversationId=none durationMs=311 error={"code":-32600,"message":"unsupported feature enablement `auth_elicitation`: currently supported features are apps, memories, mentions_v2, plugins, remote_control, tool_search, tool_suggest, tool_call_mcp_elicitation"} method=experimentalFeature/enablement/set
2026-05-20T15:54:50.814Z error [electron-message-handler] Failed to sync experimental feature enablement error={"code":-32600,"message":"unsupported feature enablement `auth_elicitation`: currently supported features are apps, memories, mentions_v2, plugins, remote_control, tool_search, tool_suggest, tool_call_mcp_elicitation"} hostId=local
The same pattern recurs after reopening:
2026-05-20T15:56:07.046Z error [electron-message-handler] Request failed conversationId=none durationMs=296 error={"code":-32600,"message":"unsupported feature enablement `auth_elicitation`: currently supported features are apps, memories, mentions_v2, plugins, remote_control, tool_search, tool_suggest, tool_call_mcp_elicitation"} method=experimentalFeature/enablement/set
2026-05-20T15:56:07.047Z error [electron-message-handler] Failed to sync experimental feature enablement error={"code":-32600,"message":"unsupported feature enablement `auth_elicitation`: currently supported features are apps, memories, mentions_v2, plugins, remote_control, tool_search, tool_suggest, tool_call_mcp_elicitation"} hostId=local
Conversation state also desynchronizes:
2026-05-20T15:56:15.345Z error [electron-message-handler] Received turn/started for unknown conversation conversationId=019e461a-1532-7af0-af25-ac56d8aecbd0
2026-05-20T15:51:28.801Z error [electron-message-handler] Received turn/completed for unknown conversation conversationId=019e4615-8d92-71c3-8022-f8b84276e4f4
During active use, logs continue to show lost turn items:
2026-05-20T16:20:23.928Z error [electron-message-handler] Item not found in turn state itemId=call_dr6y9v0b0w3sKwLe2SKVcVzV
2026-05-20T16:21:54.662Z info [electron-fetch-handler] codex-home request hostId=undefined ...
2026-05-20T16:22:11.471Z error [electron-message-handler] Item not found in turn state itemId=call_Tquj2g4Mo95JjZ1vZOxd8QfO
I also observed multiple Codex helper / renderer / app-server processes after reopen. That may be expected with several windows/sessions, but it coincided with high CPU and the above state errors.
Related issues
This looks related to, but not exactly the same as:
- Codex Desktop reconnect loop on new/restarted conversations due to turn/started for unknown conversation #21167, which reports
turn/started for unknown conversationreconnect loops. - Desktop crashes on every launch with "Connection for host ID local not found" after team-leave-during-login #19534, where stale
~/.codex/.codex-global-state.jsoncan poison the desktop app across reinstalls. - Codex App on macOS crashes with SIGABRT after sending a message; earlier missing rollout path #21663, another macOS crash report involving local session state.
Notes
This may be a persisted-state compatibility problem between the Desktop frontend and the bundled app-server. The auth_elicitation feature appears to be requested by the Desktop side but rejected by the current app-server feature list.
Activity
github-actions commentedon May 20, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
jjhuang2023 commentedon Jun 14, 2026
Additional current repro/evidence from another macOS arm64 install. This still looks like the same renderer reset / conversation-state desync class, but on a newer Desktop build.
Environment observed locally:
26.609.41114(CFBundleVersion3888)149.0.7827.54codex-cli 0.139.0What I observed:
2026-06-13 12:32:32 CST, so the user-visible "restart" did not appear to be a full app-process restart.2026-06-14 11:53:02 CSTunder~/Library/Application Support/com.openai.codex/web/Crashpad/pending/.{"osarch":"arm64","ptype":"renderer"}thread/list,thread/read,thread/goal/get, andthread/resume, followed by repeated state mismatch messages:Statsig: error while bootstrapping post-login clientwithuser.custom.workspace_typebeingnull, though I do not know whether that is causal or just adjacent startup noise.SkyComputerUseClientandnode_replprocesses, plus repeated screen-capture churn:One related local detail: this machine also has a persisted
goals_1.sqlite.thread_goalsrow withstatus = blocked, matching the separate renderer-crash class reported in #26784. That blocked row is old, so I am not claiming it caused the 2026-06-14 11:53 renderer dump, but it may be another way to trigger or poison the same renderer/session state path.User-visible symptom:
Privacy note: I am not attaching raw logs, minidumps, or session JSONL publicly because they contain local paths and private conversation metadata. The details above are the sanitized signatures from the local logs.
linear commentedon Jun 14, 2026
from lxing:
nachoal commentedon Jul 16, 2026
Additional deterministic macOS multi-window repro and local root-cause evidence from a current build.
Environment
26.707.72221(bundle build5307)com.openai.codex26.5.2(25F84), Apple Silicon (arm64)Deterministic trigger
Cmd+Shift+Nto open a seventh primary window.This causes significant productivity/context loss and is not backend thread deletion.
Captured incident timeline
The same Desktop main process remained alive throughout. Sanitized desktop-log chronology:
The three existing-window remounts reused the same BrowserWindow/webContents IDs and had no corresponding new-window creation records, so these were renderer reloads rather than intentional window replacement.
Crashpad created three matching sidecars:
{"osarch":"arm64","ptype":"renderer"}23:08:1723:08:42This matches the one-then-two renderer remount sequence above.
Confirmed immediate cause
Read-only inspection of the exact packaged app build shows:
Cmd+Shift+Ncreates a freshBrowserWindow; there is no six-window cap, reuse, or intentional eviction path.render-process-gonehandler.webContents.reload()after 500 ms.Therefore the visible reset/context loss is explained by three existing renderer processes crashing, followed by the app's automatic blind reload of those renderers. The app-server and threads keep running, but the renderer/window-to-thread mapping is lost.
After the reloads, logs also contain the familiar secondary state-desynchronization signatures:
The renderer code keeps an independent conversation map per window, while app-server events are broadcast to all renderer windows. After a renderer reload, events can therefore arrive before that window has rehydrated the relevant conversation.
What is not yet proven
The lower-level reason Chromium/Electron terminated these renderers is not recoverable from the remaining local artifacts:
render-process-gonereason/exit code to Sentry but does not write it to the durable plaintext Desktop log;Post-incident renderer RSS was unusually high (roughly 1.3–2.8 GB per renderer), so renderer-local memory exhaustion or another Chromium/Electron renderer defect is plausible. This is not enough to claim memory as the root trigger, especially because the 128 GB system still reported substantial free memory when inspected.
Suggested fix/instrumentation
render-process-gonereason, exit code, window ID, and webContents ID before Sentry upload.This appears to be the same renderer-reset/conversation-state-desync class already tracked here, with a new deterministic multi-window trigger. It is also related to #24263, but that report is Windows-specific and does not identify opening a seventh window as the trigger.
Privacy note: raw logs/session files are not attached because they contain local paths and private thread metadata. Sanitized excerpts or exact timestamps can be provided privately if useful.