Skip to content

Windows desktop startup hangs with missing backend version; initialization handshake replay opens UI #49557

Open

Description

@gartfeo

Summary

Codex Desktop on Windows intermittently remains on its startup loading animation for minutes, with no application UI. The user reports recurrence after updates. Renderer reload recovered one failing launch. During another failing launch, replaying the existing initialization handshake delivered missing backend state and opened the UI without a reload.

Environment

  • Diagnosed 2026-09-30, Windows x64.
  • MSIX package: OpenAI.Codex 26.928.2636.0.
  • Desktop client / installed app.asar package.json: 26.928.21956. The MSIX version is a separate metadata field.
  • Bundled and running backend: codex-cli 0.159.2.

Reproduction and expected behavior

Cold-launch the registered desktop application. Intermittently, the startup animation remains indefinitely. The user associates recurrence with updates; the first post-update transition was not directly traced.
Expected: the app finishes initialization and displays its normal UI, or presents an actionable error.

Observed failing renderer state

  • document.readyState=complete; body text length=0; startup loading component mounted.
  • gatewayOAuthReadiness=loading, local backend version absent, renderer-side local host state=disconnected.
  • Account authentication completed; feature access allowed; workspace roots and onboarding queries completed.
  • Older host requests (including locale-info, inbox-items, list-automations, codex-home and get-global-state) remained pending. A new locale-info request returned status 200 immediately.

Diagnostic intervention

With user-authorized temporary loopback renderer debugging, we called the app's existing API once:

await window.electronBridge.sendMessageFromView({
  type: "ready",
  initializationOnly: true
});

Actual initialization snapshots arrived. Renderer host state became connected, backend version became 0.159.2, readiness left loading, and the application shell appeared without reload or fabricated state.

Eight older requests remained pending after this replay and a subsequent normal ready message. A queue-based circular-wait explanation is therefore not established; those requests may have been dropped earlier.

Separately, a renderer reload recovered the UI and the user confirmed success. A later instrumented cold launch succeeded naturally, but instrumentation may affect timing. Debugging was stopped and the app relaunched through its registered Windows entry without debugging flags; both diagnostic ports were verified not listening.

Isolation

  • Disabling the parent app-tools plugin eliminated its tools/list timeout, but the blank startup persisted. Setting restored.
  • Rebuilding only Chromium Cache, Code Cache and GPUCache did not resolve the issue. Original caches restored; generated test caches retained separately.
  • Approximately 15 GB RAM free; no recent Codex crash event found in Windows Application log; desktop log files empty.
  • No chat, sign-in or installed package files changed.

Relevant installed code, inspected read-only

Inside app/resources/app.asar:

  • webview/assets/app-initial-fd3c4b862660.js: r_c sends initializationOnly ready once on mount; cfc sends normal ready after routes mount. Startup indicator stays mounted while gateway readiness is loading, which occurs when the local backend version atom is absent.
  • webview/assets/app-shared-a906948d8868.js: local host state starts disconnected/version undefined; initialization notifications set backend version.
  • .vite/build/main-DkWgQSQe.js: initializationOnly ready sends current snapshots directly but does not mark the window ready; normal ready marks it ready; ordinary messages can be queued until window readiness.
  • .vite/build/bootstrap-DvSEn4qy.js: sendInitializationSnapshot supplies a version snapshot only if the backend is already initialized.

Interpretation and requested investigation

Missing backend-version state explains the observed loading gate, and replay supplied that state and opened the gate. This strongly supports an initialization-delivery failure, but does not prove the initiating timing or exclude all contributors. Early readiness, missed delivery or incomplete host/window registration remain hypotheses. No permanent app-code fix has been applied.

Please trace renderer attachment, backend initialization and snapshot delivery; ensure current initialization state reaches the renderer even when backend initialization completes after attachment. A regression check should cover slow backend startup, cold launches and first launch after an update.

Related symptom reports: #48484, #48313, #48556. This report adds in-place initialization replay evidence; their initiating causes may differ.

No raw logs, chat content, account identifiers or credentials are included.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    windows-osIssues related to Codex on Windows systems
    app-serverIssues involving app server protocol or interfaces
    on Sep 30, 2026
  2. xrazai commented on Sep 30, 2026

    @xrazai

    Additional diagnostics collected on 2026-09-30 for a recurring Windows startup spinner, shared at the affected user's request.

    Environment

    • Windows 11 Pro 25H2, build 26200.9457, x64.
    • Installed MSIX package: OpenAI.Codex 26.928.2636.0.
    • Windows Application Hang events also identify an earlier affected package, 26.924.6891.0.

    Reproduction and observed sequence
    The user reports that normal app opening repeatedly stays on the loading animation. The desired behavior is a usable application interface without an external recovery shortcut.

    Two inspected launches on September 30 (America/Sao_Paulo, UTC-03):

    • 07:28:38 normal packaged launch: backend initialization handshake succeeds in 115 ms; the main frame finishes loading at 07:28:39; account lookup succeeds at 07:28:41. No completed app_start is recorded before that launch ends.
    • 07:31:31 direct-executable launch through an existing local workaround: backend initialization succeeds in 77 ms and account lookup succeeds at 07:31:34. The shortcut detects a stuck spinner and forces a renderer reload at 07:31:45. A second React render is recorded at 07:31:46, followed by app_start outcome=success at 07:31:49.

    This confirms that backend/authentication readiness and initial main-frame load can occur without a usable interface. Reload recovery is observed; a permanent fix has not been established.

    Read-only installation/environment checks

    • Executable Authenticode signature: valid, OpenAI OpCo, LLC.
    • All SHA-256 blocks match AppxBlockMap.xml for app/ChatGPT.exe (73 blocks) and app/resources/app.asar (8253 blocks). This checks those two core files, not every installed file.
    • No persistent Node/Electron/Chromium, proxy, endpoint or certificate overrides were found; CODEX_HOME points to the existing normal user directory.
    • No explicit Windows/WinHTTP proxy or OpenAI-related hosts-file overrides.
    • Application Hang 1002 events identify the current version on September 30 and the previous version on September 29.
    • Minimizing config.toml did not resolve startup; tool/plugin entries reappeared after restart.

    Caveats
    The workaround directly starts the EXE. That launch logs no-package-identity and an unavailable updater. Normal packaged launches also hang, so this side effect is not established as the original cause. The Artifact Session Windows transport warning and fs/readFile requires an environmentId also appear in successful startup sequences and are not decisive.

    Existing logs support a frontend initialization/state-delivery problem but cannot distinguish its initiating race from persistent local state. Please advise what additional supported diagnostics would help isolate it.

    No raw logs, conversation content, personal paths, account identifiers or credentials are included.


    Related reports reviewed

    At the affected user's request, this index adds 36 related issues whose bodies or diagnostic comments were reviewed. It provides links and the observed relationship; matching symptoms alone do not establish a shared root cause. The index includes the potential duplicates suggested earlier in this thread.

    Closest matches: initialization state, reload or backend reconnection

    Issue Reported relationship
    #43960 Missing renderer backend version; initialization snapshot replay restores visible UI. See the controlled reproduction and measured listener timing.
    #49237 Initialization is retriggered to recover Windows cold-start loading; the claimed race remains unconfirmed upstream.
    #49240 Initial main/renderer LOCAL connection mismatch; backend restart restores UI. Newer-build observations reproduce on MSIX 26.928.1915.0.
    #48878 Cold launch spinner; external main-renderer Page.reload restores UI.
    #48487 Reloading the main index.html restores UI; reloading the detached window does not.
    #48989 Repeated startup spinner/MoAppHang; main-renderer reload restores only the current session.
    #48896 Backend remains healthy while routes never mount; restarting the child app-server recovers startup.
    #48466 Cold startup times out despite successful backend/auth/config; app-server restart restores routes.
    #48333 Startup spinner until the child app-server is terminated and respawned.
    #48603 Startup spinner recovers by restarting only the app-server; report retracts its earlier rate-limit hypothesis.
    #49506 Splash persists after backend/account success; reconnection recovers UI on MSIX 26.928.1915.0 and earlier builds.
    #49553 Loading persists after reboot/update on MSIX 26.928.2636.0; backend-only restart restores UI.

    Additional Windows startup/reopen reports with the same visible symptom

    Issue Reported relationship
    #48484 Entire desktop remains on spinner despite renderer/host/settings readiness; Remote still works.
    #48556 Black startup spinner survives reinstall/reboot despite successful app-server and account initialization.
    #48522 Live renderer, successful backend/authentication and unresolved main UI; no fatal renderer exception identified.
    #49452 Endless blank-screen spinner with package Status: Ok; Repair/Reset/reinstall/network changes reported unsuccessful.
    #48625 Loading returns after reopening; earlier recovery found renderer version absent although backend initialized.
    #48615 Full relaunch or a second window hangs while an existing working window remains usable.
    #48463 Successful handshake/account/pubsub precede an approximately 121-second app_start timeout.
    #48492 Fresh configuration/user data allows one launch, followed by the same hang on reopening.
    #48594 Startup hangs before normal logging; reproduction reported with a fresh Windows user profile and MoAppHang.
    #48364 Backend connected and window ready-to-show, but blank spinner persists with clean UI state. Closed as duplicate, not evidence of a shipped fix.
    #48558 Startup spinner despite backend/authentication success on Store and direct MSIX installations.
    #49008 Renderer never mounts despite healthy authentication/databases and successful endpoint requests.
    #48694 Successful account/backend/SQLite/project initialization precedes startup timeout; fresh profile and alternate network reported unsuccessful.
    #48592 App-server remains responsive and primary runtime validates while the Windows UI keeps loading.
    #48946 app_start timeout after readiness/authentication; Repair and reinstall reported unsuccessful.
    #48832 Windows 10 startup spinner after update; reboot, Repair and reinstall reported unsuccessful.
    #49196 Backend/account/config succeed while spinner and MoAppHang persist; update policy remains pending, causality unconfirmed.
    #48655 Loading returns after each in-app update; account/backend success followed by startup timeout.
    #49070 Unified-app startup spinner survives recovery attempts; newer-build recurrence reported before sign-in UI.
    #48383 Authentication-state-dependent startup timing in controlled clean-profile tests; routes fail to mount when existing auth state is present.
    #48313 Permanent blank Windows client after update despite successful diagnostics and running backend/renderer.

    Related delivery mechanism and older Windows presentation failures

    Issue Reported relationship
    #47795 Early host fetch responses reportedly lost before renderer delivery; pending queries recover after refetch/reload. Different visible scope, but relevant to startup IPC/state delivery.
    #40878 Older blank client with completed routes and a DirectComposition workaround. A presentation failure, potentially distinct from missing initialization state.
    #42547 Older renderer paints a full UI that the native window does not present; Page.reload recovers it. Useful comparator, not a confirmed initialization duplicate.

    The closest reports describe backend/authentication readiness without a usable renderer, followed by recovery after state replay, renderer reload or backend reconnection. Additional reports reproduce the visible hang across Windows 10/11 and multiple 26.924/26.928 builds. Please consider consolidating the applicable reports, checking initialization snapshot/response delivery under cold-start timing, and providing a supported recovery path and fix status. The older presentation cases are listed separately because their failure stage may differ.

    This is a reference index, not an assertion that every issue is a duplicate or that the reporters represent 36 distinct affected installations.

  3. superNos commented on Oct 3, 2026

    @superNos

    The same question, marked

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appapp-serverIssues involving app server protocol or interfacesbugSomething isn't workingwindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions