ChatGPT/Codex Desktop main window renders empty (or "Work" shell with endless spinner) on first load after every update since 26.901.2854.0; only a DevTools Page.reload fixes it
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.901.6511.0 (MSIX package OpenAI.Codex_26.901.6511.0_x64__2p2nqsd0c76g0). Also reproduced on 26.901.2854.0 (Sept 3) and 26.901.5280.0 (Sept 5). Embedded Chromium 152.0.7977.83, bundled codex-cli 0.153.4.
What subscription do you have?
ChatGPT Pro
What platform is your computer?
Microsoft Windows 11 Pro 25H2, build 10.0.26200, x64. Dell Precision 7920 (Xeon Silver 4110, NVIDIA Quadro P5000, driver 32.0.15.8278). Single 2560x1080 display, 100% scaling. No proxy, no VPN on the default route (WireGuard and Tailscale adapters present but not default).
What issue are you seeing?
Since the update to 26.901.2854.0 on Sept 3, 2026, the main window never renders correctly on its first load. Every launch ends in one of two states:
- Fully empty window: only the gradient background and the min/max/close buttons. The DOM of
app://-/index.htmlhas ~23 elements:#rootcontains only the pre-mounted (inert/invisible) pricing overlay, nothing else.body.innerTextis empty. - "Work" shell without composer: the sidebar renders (header shows "Work", projects list), the center shows the OpenAI logo spinner forever, projects show "Carregando chats"/"Loading chats" forever, and there is no message composer (
document.querySelectorAll('input, textarea, [contenteditable]')= 0).
Everything else is healthy in the app's own logs (LocalCache\Local\Codex\Logs\...): all processes Responding=True, no crash, no render-process-gone, app_server_connection reaches initialize_handshake_result outcome=success in ~1 s, getAuthStatus / account/read / model/list / config/read all answer with errorCode=null in < 250 ms, [chatgpt-account-lookup] completed ... authenticatedAccountPresent=true result=succeeded, window main frame finished load and ready-to-show fire normally, and [startup][renderer] app routes mounted after ~6700ms is logged for the primary window.
What the renderer console says on load (captured through CDP Runtime.consoleAPICalled):
Matched leaf route at location "/" does not have an element or Component.
This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.
The only thing that fixes it is reloading the same webContents: launching the app with --remote-debugging-port=N and sending Page.reload {ignoreCache:true} to the app://-/index.html target. After the reload the DOM goes from ~23 elements / 0 text / 0 inputs to ~1750 elements / ~1500 chars / 2 inputs, the header switches from "Work" to "ChatGPT", projects and recent conversations load, and the composer appears. The reload also triggers main-process work that never happened in the broken state: bundled_plugins_reconcile_started reason=startup, browser_use_iab_backend_startup_started, chatgpt_conversation_updates_subscription_mounted, and app/installed + app/read requests to the app-server. In the broken state main keeps logging bundled_plugins_reconcile_skipped_features_unavailable reason=focus on every focus.
On Sept 3 a single reload was enough and subsequent normal launches worked. Since Sept 5, every normal launch (7 of 7 on Sept 5, again on Sept 8) is broken again; only an instance kept running with the debugging port open is usable.
Two other warnings appear at every start, in working and broken instances alike, so they are probably unrelated: Failed to start the Artifact Session host errorMessage="Artifact Session host Unix-socket transport is not available on Windows." and two fs/readFile requests failing with os error 3 (path not found) right after startup.
What steps can reproduce the bug?
Feedback ID: no-active-thread-01a08355-ffb9-7ef0-b1ca-470e3be31017
What is the expected behavior?
The main window renders the ChatGPT UI (sidebar, conversations, projects, composer) on the first load, without needing a manual reload through the debugging protocol.
Additional information
- Package update timeline on this machine: 26.901.1978.0 -> 2854.0 (Sept 3) -> 4073.0 (Sept 4) -> 5003.0 and 5280.0 (Sept 5) -> 6511.0 (Sept 8). The bug has been present in every build since 2854.0.
- Logs from all three builds (with paths anonymized) and the exact CDP transcript of a broken load + reload are available on request.
- Looks related to #23795, #41075, #41179 (blank/headless window after update) and #32917 (renderer reload/state).
- Workaround I am using: a PowerShell script that launches the app with a random high
--remote-debugging-port, sendsPage.reloadover CDP and leaves the instance running. This is not acceptable as a permanent state because it leaves a debugging port open on the machine.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source file or test is named. Start with the app://-/index.html renderer entry point, the startup renderer logs, and the CDP Page.reload transcript to compare the broken first load with the working reload. Done means the ChatGPT UI, conversations, projects, and composer render on the first launch without an exposed debugging port.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell
- Domain
- desktop, frontend, operating-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100