Repository navigation
Windows desktop app stuck on infinite loading spinner – renderer alive, app://-/index.html route never resolves #48522
Description
Description
The Codex Windows desktop app opens successfully but remains permanently stuck on the loading spinner.
The browser version of ChatGPT works normally.
Environment
- Windows 11 25H2
- Build: 26200.9457
- OpenAI Codex package: OpenAI.Codex
- Desktop version: 26.924.2738.0
- Package family: OpenAI.Codex_2p2nqsd0c76g0
Expected behavior
The Codex desktop UI should finish loading and show the normal application interface / composer.
Actual behavior
The window opens, but remains indefinitely on the loading spinner.
The app does not crash and the backend continues running.
Diagnostics
The following components start successfully:
- ChatGPT.exe main process
- Chromium renderer processes
- GPU process
- Network service
- Storage service
- codex.exe app-server
Authentication works and backend communication is active.
The Codex models endpoint returns HTTP 200.
The MSIX/AppX application activation succeeds.
Chromium / Electron debugging
I launched the application with:
--enable-logging --v=1 --remote-debugging-port=9222
The DevTools endpoint works on:
127.0.0.1:9222
The main renderer target is:
app://-/index.html
A direct WebSocket connection to the Chrome DevTools Protocol for this renderer succeeds (STATE: Open).
The renderer repeatedly reports:
Matched leaf route at location "/" does not have an element or Component.
This means it will render an with a null value by default resulting in an "empty" page.
Source:
app://-/assets/app-initial-ff48311587c5.js
The renderer continues making backend requests after this warning, including requests for:
- account information
- user settings
- sites/access
- task list
- usage
- onboarding context
- automations
No fatal JavaScript exception has been found in the Electron renderer log so far.
Troubleshooting already performed
- Reinstalled the desktop application
- Windows Repair / Reset
- Tested another network / mobile hotspot
- Checked WebView2
- Tested GPU-disabled launch
- Tested with a clean Chromium/Electron profile
- Isolated Codex thread history
- Isolated session data
- Isolated state_5.sqlite
- Isolated .codex-global-state.json
- Verified SQLite integrity
- Tested without plugin/temp state
- Checked AppModel Runtime / TWinUI activation
- Checked Windows Defender Controlled Folder Access
Controlled Folder Access had previously blocked some Codex helper/sandbox processes. Those permissions were corrected and Codex CLI sandbox/write tests now succeed. The desktop spinner issue remains unchanged.
Logs available
I can provide, after redacting sensitive information:
- Electron debug log
- Codex app-server logs
- Windows Event Viewer logs
- process trees / command lines
- AppModel / TWinUI activation logs
- Codex session transcripts
- screenshots
I cannot generate an in-app feedback Session ID because the desktop app never reaches the composer.
Please let me know which additional diagnostic information would be useful.
Activity
github-actions commentedon Sep 26, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
netutinho commentedon Sep 26, 2026
Confirming this is the same build (26.924.2738.0) and the same symptom. Adding the one piece of evidence I have not seen posted yet, which points at a specific cause.
Reproduction pattern
This is not a permanent hang. Any change to local app state produces exactly one working launch, and every launch after that hangs again. Observed with all of:
%USERPROFILE%\.codexto a fresh directory -> 1 launch fine, 2nd onward hangsOn the working launch the sidebar, projects, conversation history and composer all render normally. On the failing launches the sign-in window never appears at all.
The window that appears instead of the mascot overlay
On a working launch the app registers its second window as an avatar overlay:
On every failing launch, the same slot (
webContentsId=2,windowId=2) is registered asdetachedinstead:This appears deterministically ~4.7 s after startup, and nothing in the log requests it. The detached window loads a page whose root route has no matching component, so the renderer logs the "empty page" warning:
It then steals focus and the boot never completes
The primary window is still focused and visible right up to 108 ms before the detached window is created. After that, the last line the app ever writes is:
reason=focusmeans the plugin reconciliation was cancelled because the window was not focused. From that point the app emits no further log output for 5+ minutes and the interface never mounts. My hypothesis is that the bootstrap awaits that reconciliation, so the focus loss leaves it pending forever, with no timeout or error boundary.Log excerpt from a failing launch
From 20 lines before the first
appearance=detachedentry, through the window creation. Personal paths and identifiers redacted:A/B on auth.json
Related to #48383. I tested moving
%USERPROFILE%\.codex\auth.jsonaside before launch, same build:However I do not want to overstate this: on the next launch, using the exact same procedure, it hung again, even though the app had recreated
auth.jsonin the meantime. So in my case it produced one good launch and then reverted, and I could not make it reliable. Posting it only so others can retest on this build.Ruled out on this machine
codex.exe,rg.exe,codex-command-runner.exe,codex-code-mode-host.exe,codex-windows-sandbox-setup.exeall match the files underC:\Program Files\WindowsApps)chatgpt.com,auth.openai.com,api.openai.com,cdn.oaistatic.comall HTTP 200ProxyEnable=0x0, noProxyServer, noAutoConfigURL, no proxy env vars); only Windows Defender installed; no third-party network filter driver activecodex.execore (0.158.0-alpha.2.1) stays alive, healthy and answering JSON-RPC the entire time the UI is hungCodexSandboxService.OpenAI.Codexrunning,CodexSandboxOffline/CodexSandboxOnlineenabled,windowsSandbox/readinessreturns{"status":"ready"}.codex-plugin/plugin.jsonparsesconfig.tomlcontains noapproval_policykeyOne note for triage: this error also appears on launches that work, so I do not think it is causal:
Ask
Could someone confirm whether
webContentsId=2is supposed to be registered asavatarOverlayrather thandetachedduring startup, and whether the boot path should survive losing focus? A timeout or a recoverable error onbundled_plugins_reconcile_skipped_features_unavailablewould also turn this from a silent hang into something actionable.Not offering a workaround, since I could not make one reliable. Happy to provide more log excerpts from this build.
alexstollo292-ui commentedon Sep 26, 2026
Support provided additional diagnostics suggesting a possible startup focus/window-state issue on the same build.
On failing launches, a second window is reportedly created as appearance=detached instead of appearance=avatarOverlay, followed by bundled_plugins_reconcile_skipped_features_unavailable reason=focus.
My machine independently shows the same two renderer targets:
app://-/index.html
app://-/detached-window.html?initialRoute=%2Fdetached-window
Reloading the main index.html renderer via CDP restores the UI for the current instance, but the problem returns after a full relaunch.
This may be related to focus/window initialization, although I cannot confirm causality.
Sylvian commentedon Sep 26, 2026
I can confirm the same issue on the same Windows desktop build, with one additional account-specific reproduction pattern that may help triage.
Environment
OpenAI.Codex 26.924.2738.00.158.0-alpha.2.1Reproduction
With my main Pro account:
%LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Roaming\Codex\web\CodexThis is reproducible.
Account-specific A/B
On the exact same PC, same Desktop installation, same network:
ChatGPT Web and Codex Cloud both work normally with the affected Pro account.
Isolation already performed
The issue still reproduces after:
config.tomlcodex doctorconfirmed:HTTP 101 Switching Protocols)Sandbox diagnostics
Windows sandbox setup appears healthy.
Relevant sanitized sandbox log results:
No 1385, access denied, panic, exception, or sandbox setup failure was found.
Session / plaintext logging behavior
On failing launches:
%USERPROFILE%\.codex\sessions%USERPROFILE%\.codex\archived_sessionshas no relevant new entrylog_dirwas explicitly configuredRUST_LOG=debugis confirmed in the environment%USERPROFILE%\.codex\logremains empty; nocodex-tui.logis produced/feedbacksession ID because the UI never reaches the composerOpenAI support indicated that this exhausts the documented Desktop diagnostics and suggested filing/adding this to the engineering tracker.
The strongest signal on my machine is that clearing Desktop app state gives exactly one successful Pro launch, then the next launch hangs again, while a fresh Free account works on the same installation.
Sylvian commentedon Sep 26, 2026
Small correction to my previous comment after another reproduction attempt:
The MSIX profile reset is not 100% reliable on my machine. It has repeatedly produced the pattern “one successful launch, then spinner on the next launch”, but on a later attempt, deleting the same Desktop profile and relaunching still went directly to the spinner.
So please treat “profile reset -> one good launch” as a frequent workaround pattern, not a guaranteed deterministic result.
The stronger/reliable A/B observations remain:
errors=[])log_dir+RUST_LOG=debugThe focus/window-state evidence already posted in this issue (second window becoming
appearance=detachedinstead ofavatarOverlay) looks especially relevant to the behavior I am seeing as well.Sylvian commentedon Sep 26, 2026
Temporary Windows workaround (tested on 26.924.2738.0)
I can confirm that recreating the primary ChatGPT renderer works as a temporary workaround for the startup spinner on my machine.
This is consistent with the renderer-recreation workaround discussed in related issue #48333. In my case, the following launcher works:
This does not reset the MSIX profile and does not delete
auth.jsonorconfig.toml. It only forces the primary renderer to be recreated.This is a temporary workaround, not a fix.
onlyasuka8395-cell commentedon Sep 27, 2026
Another Windows desktop case on September 27, 2026 (KST): after an OpenAI.Codex Microsoft Store update, the app opens to a blank pale window with a centered loading spinner indefinitely. The window still responds to right-click (shows “Select All”), but the sign-in screen and main UI never appear. ChatGPT Work in the browser works on the same PC. Windows Reliability Monitor shows the OpenAI.Codex package update succeeded and no Codex application crash entry at the time of reproduction. We have tried restarting Windows, uninstalling/reinstalling the app, Windows app Repair and Reset, and
wsreset.exe; the spinner persists. The exact app package version and root cause are not yet confirmed. This report is intended as an additional reproduction, not a claim that the renderer route issue identified above is the same cause.netutinho commentedon Sep 27, 2026
What works for me is: launch the app -> open Task Manager -> kill the first Codex child process.
That's it. Wait about 2-5 seconds and kill another one. When you see the OpenAI logo instead of the infinity loading circle, it worked.
woonger commentedon Sep 27, 2026
Same symptom on Windows 11 (26200) with OpenAI.Codex 26.924.2738.0 / app-server 0.158.0-alpha.2.1. Two findings that may help:
1. Startup race, reproducible workaround. In every stuck run the main-process log stops right after
bundled_plugins_reconcile_completedand never logs[startup][renderer] app routes mounted; every run that did succeed had an app-server reconnect/restart after the renderer loaded. Forcing that reconnect unsticks the UI within seconds, with the user's original state files untouched:Stop-Processthecodex.exechild ofChatGPT.exe(the bundled app-server). The app relaunches it ->Transport start success connectionId=2->app routes mounted after 95093ms. Reproduced 3 times..codex-global-state.json, the rendererLocal Storage,config.toml, DNS, proxy settings, or reinstalling did not change anything.Matched leaf route at location "/" does not have an element or Componentwarning as in this issue.2. Separate aggravating factor: VS Code extension. The VS Code extension
openai.chatgpt26.917.62051 hosts the\\.\pipe\codex-ipchub. With VS Code running, that pipe can end up permanentlyERROR_PIPE_BUSY(WaitNamedPipe5 s ->ERROR_SEM_TIMEOUT), and the desktop app then logs[IpcClient] Initialize failed errorMessage=timeoutevery few seconds. Killing that VS Code extension host (or disabling the extension) clears it; the desktop app then hosts the pipe itself.Happy to share the desktop logs privately.
onlyasuka8395-cell commentedon Sep 28, 2026
Update from the same reporter (September 28, KST): a second, separate Windows desktop PC at the office also became unusable with the same blank window / endless centered spinner immediately after updating the ChatGPT/Codex desktop app. This broadens the reproduction beyond the original PC. I have not yet collected the second PC's exact package version or logs, so I am not claiming the same internal root cause.
ashelley commentedon Sep 28, 2026
This helped me. Was getting infinite spinner even after reboot. Killed the first process. Didn't have to kill another one though, just a few seconds after killing the first Codex process the app completed it's startup and i have a working window. Version 26.924.22138
ahmedmagdy193-creator commentedon Sep 28, 2026
I can independently reproduce this issue on Windows, and I have one additional data point that may help isolate the cause: the behavior appears to be account-dependent on the exact same installation.
Environment
Controlled account A/B test
I tested two ChatGPT accounts using the same PC, same Windows installation, same Codex installation, and same network:
.codexstate.So in my test:
Same machine + same app + same network + Free account = works
Same machine + same app + same network + Plus account = infinite Loading
Additional diagnostics
codex doctorreports no failures. Authentication is configured correctly, the state databases pass integrity checks, thread inventory is consistent, provider endpoints are reachable, the WebSocket connection succeeds with HTTP 101, and the desktop assets CDN is reachable.During a failed launch, the desktop logs show that:
ready-to-show;I left one failed session running for approximately one hour. The backend remained responsive during that period; the UI never progressed past the Loading screen.
I also tested isolating
config.toml. After doing so, the Plus account successfully opened once, including Projects and Recents, but after closing and reopening the app the infinite Loading behavior returned.A separate Free account consistently survived a normal close/reopen test.
This makes the issue look less like a basic Windows/network/authentication failure and more like something triggered during account-specific desktop initialization, runtime/plugin reconciliation, entitlement/config synchronization, or frontend state restoration.
I also have the full
codex doctor --jsonoutput and desktop logs from the failed ~1-hour session if they would be useful for debugging.ahmedmagdy193-creator commentedon Sep 28, 2026
Additional A/B log comparison found another account-specific difference that may be useful for triage.
On the affected Plus account, the desktop logs repeatedly return HTTP 432 with:
Workspace routing is unavailablefor requests including:
/wham/tasks/list?limit=20&task_filter=current/wham/usageThese failures repeat while the UI remains stuck on the Loading spinner.
I searched the working Free-account log from the same PC / same Codex installation / same network and did not find the same
Workspace routing is unavailable/ HTTP 432 failures.At the same time, basic authentication on the affected Plus account succeeds: the app-server initializes,
account/read/ auth checks succeed, an authenticated ChatGPT account is present, the Electron window reachesready-to-show, and backend requests continue to be serviced while the UI remains stuck.I do not want to overstate causality — HTTP 432 may be a symptom rather than the root cause — but it is currently the clearest account-specific divergence in my Free-vs-Plus startup logs. It may point toward workspace/account routing, entitlement initialization, or related frontend bootstrap state rather than a basic Windows, network, or authentication failure.
onlyasuka8395-cell commentedon Sep 30, 2026
Update from the same reporter — still reproducible on 2026-09-30 (Asia/Seoul) after updating and fully quitting/relaunching the app.
Current environment (verified locally)
Reproduction and recovery
The screenshot from the affected run identifies the terminated process as a renderer (PID 9132 in that run; the PID is not stable). This is not a report that killing the child codex.exe app-server has been tested on this machine.
Startup timeline from the affected machine
The desktop logs show the backend initializing and the primary window loading, followed by a long gap before main routes mount. For one launch, elapsed wall time from the first line to routes mounting is 521.154 seconds (8 min 41 sec):
All timestamps above are UTC (18:44–18:53 KST). The short
after 5221msvalue is the later renderer startup measurement; it is not the full time since app launch. Other inspected launches had approximately 32, 109, 86, and 99 seconds between process launch and first primary routes mount. The exact process-termination time is not recorded in the provided excerpt, so these are observed timings, not a controlled measurement of kill-to-recovery latency.Repeated
ResizeObserver loop completed with undelivered notifications.errors also appear after routes have mounted. I am reporting them as a secondary observation, not claiming they cause the startup hang.This appears consistent with the renderer-recreation workaround already discussed here and the startup-ordering observations in #48896, but a shared code-level root cause has not been confirmed.
Please track this as a reproduction on the newer 26.928.2636.0 / 0.159.2 combination and advise whether there is a fixed build or a supported way to reload only the desktop UI. The user needs a durable fix; update/full-restart guidance has already been tried. Only selected diagnostic lines are included; raw logs, credentials, and private conversation content are omitted.
Gavse commentedon Sep 30, 2026
The recurring Windows startup-spinner problem is still reproducible on
OpenAI.Codexpackage26.928.2636.0as of September 30, 2026. Updating did not establish reliable startup. The app can open on one attempt and then remain stuck on loading on a later normal launch.Please prioritize this issue and provide a supported recovery procedure or a verified fixed version. Reliable repeated launches into a responsive interface are needed; a single successful opening is not sufficient.
This comment intentionally contains no account, billing, conversation, or local diagnostic information.
ahmedmagdy193-creator commentedon Sep 30, 2026
Hi maintainers — following up because this issue is still blocking Codex Desktop for me on a ChatGPT Plus account.
The app remains stuck on infinite Loading, and the errors observed include HTTP 432 and
Workspace routing is unavailable.This is also causing real loss of productive work time, as a paid Plus feature I rely on remains unusable. Could you please confirm whether the root cause has been identified, or whether there is a build/fix we can test?
Given the duration and impact of the outage, I’d also appreciate clarification on whether affected Plus users will receive any service credit, usage reset, or other compensation for the period during which Codex Desktop has been unavailable.
If additional logs or diagnostics from my machine would help, I'm happy to provide them.
Thanks.
ahmedmagdy193-creator commentedon Oct 10, 2026
Update from the affected Windows / ChatGPT Plus account (October 10, 2026):
The desktop app is now opening normally on OpenAI.Codex 26.1007.2314.0. I was able to send a message and receive a response, then fully close and reopen the app successfully without the previous infinite Loading screen.
This is a preliminary positive result, not a confirmed resolution. I will actively use the app for work over the next three days and monitor for any recurrence of the loading hang, HTTP 432, or
Workspace routing is unavailable. If the problem returns, I will report the reproduction details here. If it remains stable throughout the test period, I will post another update confirming the observed resolution on my setup.Please keep the issue open for now; this test does not establish a general fix or root cause. My earlier question about potential service credit or compensation for lost productive time also remains outstanding.
Thanks.