Codex Desktop controls become unclickable when hidden/stale turn state exists

Resolved 💬 4 comments Opened May 22, 2026 by zellux Closed May 23, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

Codex Desktop can enter a state where top-level controls appear clickable but do not open, including the model/reasoning selector and project folder selector. The UI does not show an obvious active conversation or running turn, so it looks like the buttons are broken.

This may be related to stale or hidden turn state. Logs show turn lifecycle events for a conversation that was not visibly active, plus Received turn/started for unknown conversation / Received turn/completed for unknown conversation.

Environment

  • App: Codex Desktop
  • Version: 26.519.31651
  • Platform: macOS
  • Date observed: May 22, 2026

Symptoms

  • Clicking the model/reasoning selector does nothing.
  • Clicking the project folder selector does nothing.
  • The controls do not clearly appear disabled.
  • There is no visible running conversation/turn explaining why these controls are blocked.
  • Restarting the app appears to be the likely workaround.

Expected Behavior

If a turn is running and blocks model/project changes:

  • The UI should clearly show the active/running turn.
  • Controls should appear disabled, not clickable-but-dead.
  • Hover/click should explain why the control is unavailable.
  • Ideally, setup controls for a new conversation should remain usable, or the lock should be clearly scoped to the current active thread.

Actual Behavior

The controls appear interactive but do not open. The user cannot tell whether the app is busy, blocked, or broken.

Relevant Sanitized Logs

[time] info  thread/start ... conversationId=[conversation-a]
[time] info  Conversation created conversationId=[conversation-a]
[time] info  turn/start ... conversationId=[conversation-a]
[time] error Received turn/started for unknown conversation conversationId=[conversation-b]
[time] error Received turn/completed for unknown conversation conversationId=[conversation-b]
[time] info  model/list ... errorCode=null
[time much later] info show turn-complete conversationId=[conversation-a] turnId=[turn-a]

Also repeatedly observed:

Failed to sync experimental feature enablement
unsupported feature enablement `auth_elicitation`

Notes

model/list succeeds in the log, so this does not appear to be a backend/model-list failure. It looks more like the renderer or app state believes a turn is active, while the visible UI does not expose that state to the user.

View original on GitHub ↗

4 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #23814
  • #23644
  • #23725

Powered by Codex Action

zellux · 3 months ago

Additional context: this Codex Desktop session also had Codex CLI remote connections to two Linux servers over SSH. So the hidden/stale turn state may involve multiple parallel remote Codex CLI/app-server projects or turn streams, not just the currently visible local thread/workspace. That might be relevant to the unknown conversation lifecycle messages and the controls being blocked by a turn that was not visible in the active UI.

zellux · 3 months ago

Closing this for now: after removing the Desktop remote connections and doing a full Mac restart, the UI controls started working again. Leaving the issue and comments here as reference because the failure mode was confusing: Desktop controls appeared clickable but did nothing, and the logs showed hidden/stale turn and remote connection state. The practical workaround was to remove Desktop-managed remotes and fully restart macOS if quitting/reopening Codex is not enough.

zellux · 3 months ago

Resolved locally by removing Desktop-managed remote connections and fully restarting macOS. Keeping details in the thread for reference.