openai / openai/codex

Codex App 26.803.61601 on macOS: dictation button stalls before Realtime starts

Open
#38,324 8 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

app bug
Dominant language
Rust
Stars
125k
Forks
19.5k
PR merge metrics
PR metrics pending

Description

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

26.803.61601 (build 6396)

What subscription do you have?

Paid ChatGPT subscription (exact tier omitted)

What platform is your computer?

Darwin 25.5.0 arm64 arm

macOS 26.5.2 (25F84), Apple Silicon

What issue are you seeing?

Composer dictation in the Codex view intermittently becomes stuck when the microphone / “Click to use voice or dictation” control is selected.

The control visually reacts and the voice UI components are created, but recording does not begin and no transcript is inserted. The app may then feel stuck around the composer. It can work briefly after a restart and then fail again.

macOS microphone access for ChatGPT is enabled, the selected system input works, and the issue persists after restarting the app and fully rebooting the Mac.

Sanitized desktop-log observations from failed attempts:

  • voice-microphone, voice-controls, and voice-output complete the lifecycle through native-attached -> presented.
  • The hidden globalDictation renderer logs Conversation state not found.
  • No thread/realtime/start request is observed for the failed attempt.
  • The main renderer repeatedly logs ResizeObserver loop completed with undelivered notifications.

This suggests the failure occurs in the desktop client before Realtime or microphone-session startup, rather than during transcription of a completed recording.

What steps can reproduce the bug?
  1. Open ChatGPT Desktop and switch to Codex.
  2. Open an existing local Codex task.
  3. Select the microphone / “Click to use voice or dictation” control in the composer.
  4. Observe that the voice controls may render, but recording does not begin and the composer becomes unresponsive or remains stuck.
  5. Fully quit and reopen the app, then retry.
  6. The feature may work once or briefly, then return to the same stuck state.

Troubleshooting already performed:

  • Confirmed macOS microphone permission is enabled for ChatGPT.
  • Confirmed the active system microphone works.
  • Fully quit and reopened the app multiple times.
  • Fully rebooted macOS.
  • Tested in multiple Codex tasks.
  • Backed up and reset only the Codex Chromium Default/Session Storage directory, then relaunched; the issue still reproduced.

No complete raw logs are attached because they contain local task metadata. Sanitized excerpts can be provided if needed.

What is the expected behavior?

Selecting the dictation control should promptly start one recording session with visible feedback. Stopping the recording should insert editable transcribed text into the composer. If startup fails, the app should show a stage-specific error instead of silently stalling.

Additional information

This appears related to, but is distinct from:

  • #18460 — flaky microphone-button path and intermittent “Unable to transcribe audio”
  • #17434 — slow/unreliable recording startup requiring multiple clicks
  • #35677 — dictation failure in the unified macOS app
  • #36803 — severe and variable dictation latency

The distinctive behavior here is that failed attempts do not reach thread/realtime/start; the client stalls earlier while the globalDictation renderer reports missing conversation state.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure from the Codex view with the microphone control, then inspect the voice-microphone, voice-controls, voice-output, and globalDictation renderer lifecycle logs. Check why Conversation state not found occurs before thread/realtime/start; done means recording starts reliably or a stage-specific startup error replaces the silent stall.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos
Domain
audio-video-rtc, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.