[BUG] Voice input fails to detect speech ~50% of the time, toggling /voice temporarily fixes

Resolved 💬 3 comments Opened Mar 29, 2026 by edipetres Closed Apr 1, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

Voice input starts recording (the recording indicator is active) but frequently fails to detect speech. Approximately 50% of the time, pressing push-to-talk starts recording but no speech is captured.

  • Retrying (pressing again) sometimes works on the 2nd-4th attempt, but sometimes even repeated retries don't fix it
  • Toggling /voice off and back on sometimes restores functionality for a short while before it degrades again
  • Microphone works perfectly and 100% reliably in all other apps (ChatGPT voice mode, Voice Memos, etc.) — this is isolated to Claude Code

What Should Happen?

Speech should be reliably detected whenever the recording indicator is active, matching the reliability of other voice-enabled apps.

Steps to Reproduce

  1. Start Claude Code
  2. Press push-to-talk key (Space or custom binding)
  3. Recording indicator appears (recording starts)
  4. Speak normally
  5. ~50% of the time, speech is not detected despite recording being active
  6. Press push-to-talk again — sometimes works after 2-4 retries, sometimes doesn't work at all
  7. Toggle /voice off then on — temporarily restores functionality before degrading again

Claude Model

Opus

Is this a regression?

I don't know

Claude Code Version

2.1.87

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

  • macOS Darwin 25.3.0
  • Recent v2.1.85 fixed WebSocket recovery for voice, but issue persists on v2.1.87
  • The pattern of /voice toggle temporarily fixing it suggests a connection or audio stream initialization issue that degrades over time

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗