[macOS] Switching conversations with Audio visualizer enabled breaks voice input across apps
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Switching conversations with Audio visualizer enabled repeatedly prevents voice input from starting in Codex and in third-party input methods on macOS.
Codex App version and platform
- Codex desktop app version
26.901.41123, build7942(from the installed app's Info.plist; bundle identifiercom.openai.codex). - macOS
15.7.2, Apple Silicon / arm64, MacBook Air. - Default input: built-in MacBook Air microphone, mono, 48 kHz.
Steps to reproduce and observed behavior
- With Audio visualizer enabled, switch between Codex conversations/tasks.
- Try voice input. Codex voice input and the WeChat and Doubao input methods can become unable to start recording, including outside Codex. The input-method UI stays at
准备录音中(Preparing to record). - Terminate only the app's
system-audio-spectrumhelper, leaving Codex andcoreaudiodrunning. Voice input recovered during testing. - Switch conversations again. A new
system-audio-spectrumprocess appeared and voice input failed again. This sequence was observed more than once. - Disable Settings → General → Toys → Audio visualizer. The user then reported that voice input continued working when switching conversations during the subsequent test.
Troubleshooting and limits of the evidence
- Restarting
coreaudiodtemporarily restored voice input, but the problem returned while the visualizer remained enabled. - iFlyrec and Oray virtual audio components were temporarily removed from the HAL directory and the audio service restarted. The problem still recurred on conversation switching. After disabling the visualizer, those components were restored and reloaded; voice input remained functional during the subsequent test. Their removal is therefore not required for the observed workaround.
- Earlier system logs included
HALS_IOContext_Legacy_Impl::StartIOThread: got an error from starting the IO thread, Error: 0x3CandInitialize failed - thread hasBeenStopped: 1 and shouldExit: 1. These errors were not consistently present on later reproductions and do not establish the root cause. - Core Audio snapshots did not report an exclusive/hog owner for the audio devices. We have not established that the helper exclusively locks the microphone or identified the exact underlying audio-session failure.
The main additional finding is that conversation switching appears to retrigger the issue and it can affect third-party voice input system-wide, not just Codex Dictation. Disabling Audio visualizer is the working workaround in this environment so far.
No private conversations, recordings, account details, or full logs are included.
Expected behavior
Switching Codex conversations should not interrupt or prevent microphone recording in Codex or other applications. Audio visualizer should coexist with voice input and release its capture resources correctly.
Subscription
Not provided.
Related issue
Related to #42229. This report documents conversation switching as a repeated trigger, effects on third-party input methods, and a different app/macOS version.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the Audio visualizer setting, the system-audio-spectrum helper, and the conversation-switching path described in the report. Reproduce repeated conversation switches on macOS with the visualizer enabled while testing Codex and another input method. Done means switching conversations no longer prevents microphone recording and the helper releases capture resources correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, rust
- Domain
- audio-video-rtc, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100