Windows Desktop hangs/exits after turn-complete notification path
Windows Desktop: end-of-turn notification path can hang/exit Codex after turn-complete
Summary
Codex Desktop on Windows repeatedly hangs or exits immediately after an assistant response finishes. The strongest local signature is:
turn_completed...IAB_LIFECYCLE ended browser use turn route[desktop-notifications] show turn-complete- app becomes unresponsive or exits with code
0x00000001
This looks related to the Desktop app's end-of-turn notification path on Windows, possibly interacting with in-app browser route cleanup. It is adjacent to #16374, #13019, #16618, #20754, #20867, and probably not the same as #22376 because WSL_DISTRO_NAME is empty locally.
Environment
- Codex package:
OpenAI.Codex_26.506.3741.0_x64__2p2nqsd0c76g0 - Codex crashpad annotation observed in logs:
_version=26.506.31421, Electron41.2.0 - OS: Microsoft Windows 11 Pro, version
10.0.26200, x64 - Subscription: ChatGPT Pro
- Hardware/resource note: the problem reproduces under normal app usage; project health checks and local dev server tests pass independently.
Symptoms
- Codex Desktop hangs at the moment the assistant finishes a response.
- User often has to force-close through Task Manager.
- Sometimes the app restarts into a fresh process group.
- Alt-tab/window focus can feel stuck because the Codex top-level window is not responding.
- The issue reproduces even in a new chat.
- A full repository health check passes; this does not appear to be caused by the local project.
Local Evidence
Representative desktop log sequence:
2026-05-14T15:42:59.270Z info [electron-message-handler] turn_completed_with_incomplete_plan completedPlanStepCount=4 conversationId=<redacted> planStepCount=5 turnId=<redacted>
2026-05-14T15:42:59.281Z info [browser-session-registry] IAB_LIFECYCLE ended browser use turn route conversationId=<redacted> turnId=<redacted> windowId=1
2026-05-14T15:42:59.288Z info [electron-message-handler] [desktop-notifications] show turn-complete conversationId=<redacted> turnId=<redacted>
ProcDump captured the same process later exiting:
[08:44:17]Process Exit: PID 14316, Exit Code 0x00000001
[08:44:17]Dump 1 initiated: C:\Codex\codex-hang-dumps\managed-procdump\Codex-managed-1431614316-20260514-075115.dmp
[08:44:17]Dump 1 complete: 573 MB written in 0.4 seconds
Another recent run in a fresh process showed:
2026-05-14T15:49:13.785Z info [browser-session-registry] IAB_LIFECYCLE ended browser use turn route conversationId=<redacted> turnId=<redacted> windowId=1
2026-05-14T15:49:13.788Z info [electron-message-handler] [desktop-notifications] show turn-complete conversationId=<redacted> turnId=<redacted>
The app also logs repeated notification/frontend errors in the same sessions:
[desktop-notifications][global-error] ResizeObserver loop completed with undelivered notifications.
Notification State Observation
Attempting to disable notifications via the local Codex global state is not durable while the Store app is running.
A local helper sets:
notifications-turn-mode = off
notifications-permissions-enabled = false
notifications-questions-enabled = false
Verification briefly reports notification-safe state as true, but the running Store app later rewrites the state and notification-safe becomes false again. Meanwhile the Desktop logs continue to show [desktop-notifications] service starting and, on failing turns, [desktop-notifications] show turn-complete.
Isolation Checked
WSL_DISTRO_NAMEis empty in process, user, and machine environment, so #22376 does not appear to explain this case.- Browser-use auto-install/config was disabled locally, but the desktop log still shows
IAB_LIFECYCLEroute capture/release around turns. - Local project health is clean:
npm run check: passednpm run build: passed- engine/project validation suite: passed
npm run test:engine-core: 346 passed- OpenAI status page showed services operational at the time checked, so this does not look like a live backend incident.
Workaround Under Test
I built a local copied runtime from the installed MSIX app, without modifying C:\Program Files\WindowsApps, and patched:
- renderer-side turn-complete notification listener setup
- main-process
turn-completenotification display - in-app browser native pipe enablement
- browser-use turn-route capture/release dispatch
The patched runtime verifies all patches are present. This is a local workaround only; the Store app remains the repro/test target.
Expected
Completing an assistant turn should not synchronously hang the Desktop UI or trigger an app exit. If notifications are disabled, the Desktop app should not call show turn-complete.
Actual
At turn completion, Desktop logs route cleanup and then attempts to show a turn-complete notification. The app then hangs or exits in affected sessions.
Request
Please investigate the Windows Desktop end-of-turn notification flow, especially the path around:
turn_completed...IAB_LIFECYCLE ended browser use turn route[desktop-notifications] show turn-complete
It would also help to have a durable Desktop safe-mode setting that disables all OS-level turn-complete notifications and in-app browser route side effects without being rewritten while the app is running.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗