Skip to content

[Desktop] White screen infinite loop due to workspace_dependencies feature enablement error on Pro account (v26.422.21637) #19295

@dbtaiyta

Description

@dbtaiyta

What version of the Codex App are you using (From “About Codex” dialog)?

v26.422.21637

What subscription do you have?

Pro x5

What platform is your computer?

Darwin 24.2.0 arm64 arm

What issue are you seeing?

Summary

Codex Desktop app shows a permanent white/blank screen on launch. The renderer
mounts app routes in an infinite loop and the UI never becomes interactive. Menu bar
icon still works (File/Edit/View/Window/Help and the tray menu show recent chats),
but the main window never paints.

Environment

  • App version: 26.422.21637 (latest, installed from
    https://chatgpt.com/codex/get-started/)
  • OS: macOS 15.2 (24C101), Apple Silicon (arm64)
  • Account: ChatGPT Pro (recently upgraded from Plus → Pro)
  • Other surfaces: Web Codex at chatgpt.com/codex/cloud works fine, Codex CLI
    works fine, ChatGPT web works fine. Only the Desktop app is broken.

Reproduction steps

  1. Upgrade ChatGPT account from Plus to Pro.
  2. Open Codex Desktop app.
  3. Result: white screen, no login prompt, no UI. Quitting crashes the app.

Root cause (from logs)

Running the app directly from terminal reveals the issue:

/Applications/Codex.app/Contents/MacOS/Codex

Key log lines:

[electron-message-handler] Request failed conversationId=none durationMs=29
error={"code":-32600,"message":"unsupported feature enablement
workspace_dependencies:
currently supported features are apps, memories, plugins, tool_search, tool_suggest,
tool_call_mcp_elicitation"}
method=experimentalFeature/enablement/set

[electron-message-handler] Failed to sync experimental feature enablement
error={"code":-32600,"message":"unsupported feature enablement
workspace_dependencies..."}
hostId=local

And the renderer is stuck mounting repeatedly:

[startup][renderer] app routes mounted after 1241ms
[startup][renderer] app routes mounted after 1451ms
[startup][renderer] app routes mounted after 1493ms
[startup][renderer] app routes mounted after 1532ms
... (keeps looping, every ~40ms)

The feature flag payload the client sends includes workspace_dependencies:

Features enabled enabledFeatures="enable_request_compression, collaboration_modes,
personality, request_rule, fast_mode, image_generation, image_detail_original,
workspace_dependencies, guardian_approval, apps, plugins, tool_search,
tool_call_mcp_elicitation"

But the backend only accepts:
apps, memories, plugins, tool_search, tool_suggest, tool_call_mcp_elicitation.

So the client requests a feature (workspace_dependencies) that the server rejects
with -32600, and the renderer seems to retry forever, preventing the UI from ever
painting.

What I already tried (none worked)

  • Full wipe of ~/Library/Application Support/Codex
  • Deleted ~/Library/Caches/com.openai.codex,
    ~/Library/Preferences/com.openai.codex.plist, Saved Application State,
    HTTPStorages, WebKit data
  • Deleted Codex Safe Storage entry from macOS Keychain
  • Uninstalled /Applications/Codex.app, re-downloaded fresh DMG, reinstalled
  • Removed quarantine attribute (xattr -cr)

Behaviour is identical every time: white screen + infinite renderer mount loop.

Expected behaviour

  • Either the client should not send workspace_dependencies when the server doesn't
    advertise it, or
  • The renderer should not block/loop on a single failed
    experimentalFeature/enablement/set call, or
  • The server should silently ignore unknown feature flags instead of returning
    -32600.

Impact

Desktop app is 100% unusable on a Pro account. Web Codex doesn't allow connecting to
a local Obsidian vault + Claude Code workflow, so the desktop app is the only
viable surface for my use case.

Additional notes

I originally upgraded Plus → Pro through a third-party reseller. The account shows
the PRO badge correctly on chatgpt.com and Codex web works normally, so this does
not appear to be an entitlement/auth issue — it looks like a pure client/server
feature-flag mismatch bug in the desktop app.

What steps can reproduce the bug?

Summary

Codex Desktop app shows a permanent white/blank screen on launch. The renderer
mounts app routes in an infinite loop and the UI never becomes interactive. Menu bar
(File/Edit/View/Window/Help) and the tray menu still work and show recent chats,
but the main window never paints. Quitting the app then crashes it.

Environment

  • App version: 26.422.21637 (latest, installed from
    https://chatgpt.com/codex/get-started/)
  • OS: macOS 15.2 (24C101), Apple Silicon (arm64)
  • Account: ChatGPT Pro (recently upgraded from Plus → Pro)
  • Other surfaces working fine: Web Codex (chatgpt.com/codex/cloud), Codex CLI,
    ChatGPT web. Only the Desktop app is broken.

Steps to reproduce

  1. Have a ChatGPT Pro account (mine was upgraded from Plus → Pro recently).
  2. Install Codex Desktop v26.422.21637 from https://chatgpt.com/codex/get-started/.
  3. Launch the app.
  4. Result: white screen, no login prompt, no UI ever appears. Cmd+Q crashes the
    app.

Root cause (from logs)

Running the app directly from terminal to capture logs:

/Applications/Codex.app/Contents/MacOS/Codex

Key error lines:

[electron-message-handler] Request failed conversationId=none durationMs=29
error={"code":-32600,"message":"unsupported feature enablement
workspace_dependencies:
currently supported features are apps, memories, plugins, tool_search, tool_suggest,
tool_call_mcp_elicitation"}
method=experimentalFeature/enablement/set

[electron-message-handler] Failed to sync experimental feature enablement
error={"code":-32600,"message":"unsupported feature enablement
workspace_dependencies..."}
hostId=local

The renderer is then stuck mounting routes repeatedly, never finishing:

[startup][renderer] app routes mounted after 1241ms
[startup][renderer] app routes mounted after 1451ms
[startup][renderer] app routes mounted after 1493ms
[startup][renderer] app routes mounted after 1532ms
... (keeps looping every ~40ms, indefinitely)

The client requests these features:

Features enabled: enable_request_compression, collaboration_modes, personality,
request_rule, fast_mode, image_generation, image_detail_original,
workspace_dependencies, guardian_approval, apps, plugins, tool_search,
tool_call_mcp_elicitation

But the backend only accepts:
apps, memories, plugins, tool_search, tool_suggest, tool_call_mcp_elicitation

So the client requests workspace_dependencies (and likely others) which the server
rejects with -32600, and the renderer appears to retry forever, preventing the UI
from ever painting.

Things I already tried (none worked)

  • Full wipe of ~/Library/Application Support/Codex
  • Deleted ~/Library/Caches/com.openai.codex,
    ~/Library/Preferences/com.openai.codex.plist, Saved Application State,
    HTTPStorages, WebKit data
  • Deleted Codex Safe Storage entry from macOS Keychain
  • Uninstalled /Applications/Codex.app, re-downloaded fresh DMG, reinstalled
  • Removed quarantine attribute (xattr -cr /Applications/Codex.app)

Behaviour is identical every time.

Expected behaviour

  • Client should not request workspace_dependencies if the server doesn't advertise
    it, OR
  • Renderer should not block/loop on a single failed
    experimentalFeature/enablement/set call, OR
  • Server should silently ignore unknown feature flags instead of returning -32600.

Impact

Desktop app is 100% unusable on a Pro account. I rely on the desktop app to connect
to a local Obsidian vault and work alongside Claude Code — Web Codex doesn't support
that, so this completely blocks my workflow.

What is the expected behavior?

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appapp-serverIssues involving app server protocol or interfacesbugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions