[app][macOS] Advanced Voice control can be missing on reopened task until a text turn completes

Open 💬 0 comments Opened Aug 10, 2026 by nickjohngray

Summary

On macOS, reopening Codex and returning to an existing task can leave the Advanced Voice control missing from the composer. Sending any ordinary text message, then waiting for that turn to finish, makes the control render again.

This is a UI-initialisation/redraw problem: voice is unavailable until the task has completed one text turn.

Steps to reproduce

  1. Open Codex Desktop on macOS.
  2. Open an existing task that has previously used Advanced Voice.
  3. Observe the composer after the task opens or after returning from another tab/app.
  4. The black Advanced Voice waveform control may be absent.
  5. Send a normal text message.
  6. Wait for the task to finish responding.
  7. Observe that the Advanced Voice control reappears.

Switching to Chrome and back can appear to help, but the reproducible trigger is the completed text turn, not Chrome itself.

Actual

  • Advanced Voice control is absent on reopening/returning to an existing task.
  • The live transcript is unavailable while the control is absent.
  • There is no explanation or recovery action in the UI.
  • A completed text turn forces the control to render again.

Expected

Advanced Voice and its live transcript should initialise reliably when an existing task opens. If Voice cannot start, Codex should show a clear reason and a retry control; it should not require sending an unrelated text message first.

Environment

  • Product: Codex Desktop
  • Platform: macOS
  • Account has previously used Advanced Voice successfully in the same task.

Related but not duplicates

  • #35500 concerns switching an existing text task into live Voice and losing context.
  • #24535 concerns failed voice transcription and loss of captured audio.
  • #35498 concerns API-key authentication hiding voice controls entirely.

This report is about an intermittent missing control after reopening/returning to an existing task, which reappears after one completed text turn.

View original on GitHub ↗