[Windows][Codex App] Main HWND becomes unclickable because it is left Enabled=False with no active popup
What version of the Codex App are you using (From “About Codex” dialog)?
26.818.61809
What subscription do you have?
ChatGPT Pro
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
The Windows Codex/ChatGPT desktop app intermittently becomes completely non-interactive to pointer input, even though the app is still alive, visibly responsive, and continuing its work. There is no visible error message.
This is not a conventional crash or rendering freeze.
While the problem is occurring, all of the following continue to work:
- An active Codex agent run continues executing.
- New progress, text, animations, and status changes continue rendering.
- Mouse-wheel and touchpad scrolling continue working.
- Keyboard focus navigation with
Tabworks. - Keyboard window operations such as
F11,Win+Arrow, minimize, restore, and snap work. - Other applications remain fully responsive.
- The same mouse and touchpad work normally outside Codex.
However, all pointer interaction within the affected Codex window stops working:
- Buttons do not respond to hover.
- Left-clicks do nothing.
- The composer and app controls cannot be clicked.
- Command-palette or overlay controls are also unclickable.
- Native title-bar buttons such as minimize, maximize, and close do not react to hover or clicks.
- Both an external mouse and the built-in touchpad produce the same result.
Win32 inspection identified the actual failure state. The affected top-level window was still visible but had been disabled at the operating-system level:
App PID HWND Enabled Visible LastPopup EnabledPopup
ChatGPT 6504 0x803C2 False True 0x803C2 0x0
ChatGPT (Beta) 17340 0x1AA0BAC True True 0x1AA0BAC 0x0
The PID and HWND values are ephemeral, but the important state is:
Visible = True
Enabled = False
LastPopup = the main window itself
EnabledPopup = 0
There was no remaining enabled popup or modal for the user to close or activate.
A separate GUI-thread diagnostic also showed:
GUI_OK = True
Capture = 0x0
MoveSize = 0x0
Therefore, the window was not stuck in a Win32 mouse-capture, drag, or resize operation.
Calling:
EnableWindow(mainHwnd, TRUE)
immediately restored all mouse and touchpad interaction in the existing window.
The app did not need to be restarted, the Codex app-server remained alive, and the existing conversation/run state was preserved.
This has occurred repeatedly on separate days, and I have observed the same symptom in both the Stable and Beta Windows desktop apps.
The initiating action is still unknown. The observed failure state is consistent with a native modal/dialog lifecycle path leaving the main Codex owner HWND disabled after no enabled popup remains. The initiating dialog or action has not yet been identified.
This appears potentially related to #35866, which reports the same Enabled=False / LastActivePopup=self / EnabledPopup=0 state in the Codex VS Code extension, but this report is specifically for the standalone Windows Codex desktop app.
What steps can reproduce the bug?
The trigger is currently intermittent; I have not yet isolated a deterministic action that causes the window to enter this state.
Observed reproduction:
- Launch the Codex Windows desktop app and use it normally, including running Codex tasks.
- After some period of use, the main Codex window intermittently becomes completely unclickable.
- When this happens:
- the active Codex task continues running;
- new text/progress and animations continue rendering;
- mouse-wheel/touchpad scrolling still works;
- keyboard navigation (for example Tab) still works;
- other Windows applications remain fully interactive;
- mouse and touchpad hover/clicks stop working throughout the affected Codex window, including the title-bar controls.
- Without restarting Codex, inspect the main HWND using Win32 APIs.
- In the captured occurrence, the affected window showed:
IsWindowVisible(hwnd) = TRUE
IsWindowEnabled(hwnd) = FALSE
GetLastActivePopup(hwnd) = hwnd
GetWindow(hwnd, GW_ENABLEDPOPUP) = NULL
There is therefore no surviving enabled popup/modal to interact with.
- Calling EnableWindow(hwnd, TRUE) immediately restores mouse/touchpad interaction in the same running Codex window.
- No Codex restart is required and the existing task/session remains alive.
I have observed the same symptom on separate days and in both the Stable and Beta Windows desktop apps.
I do not yet know which modal/dialog operation initially leaves the parent HWND disabled. I can collect additional logs around the next occurrence if maintainers can suggest specific events or diagnostics to capture.
What is the expected behavior?
The Codex desktop app's main Windows HWND should remain enabled whenever there is no active modal or enabled popup.
If a native dialog or modal lifecycle is involved, closing, cancelling, destroying, or interrupting it should reliably re-enable the owning main window.
More specifically:
- Closing or cancelling any Codex-triggered dialog must restore the parent window.
- Destroying or disposing the dialog requester must not strand the parent at
Enabled=False. - If no popup remains, the main window must not continue rejecting pointer input.
- The user should never need to restart Codex or externally invoke
user32!EnableWindowto regain control.
Additional information
This may share a root cause with #35866, which documents the same Win32 orphaned-window state in the Codex VS Code extension:
Visible=true
Enabled=false
LastActivePopup=self
EnabledPopup=0
The exact Win32 Enabled=False state was captured in the Stable standalone desktop app. I have observed the same user-visible unclickable-but-responsive symptom in both Stable and Beta channels, but the Win32 state has not yet been captured during a Beta occurrence.
Confirmed non-destructive workaround:
EnableWindow(mainHwnd, TRUE)
This immediately restores the existing window without restarting Codex or terminating the running app-server/session.
I have already ruled out:
- external mouse/touchpad hardware;
- stuck Win32 mouse capture (Capture=0x0);
- window drag/resize state (MoveSize=0x0);
- general Windows/system unresponsiveness;
- a conventional renderer crash, since rendering, animations, scrolling and keyboard navigation continue.
The exact action that originally strands the HWND at Enabled=False is not yet known. I can capture narrowly filtered/redacted logs around the next occurrence if maintainers specify useful event names or timestamps.
Stable and Beta were not originally running together as a trigger. I opened the other channel only after the first channel became disabled so that I could continue working. Running both channels simultaneously is not required for the issue to occur.