Voice mode: captures good audio but transcription intermittently returns blank (WSL2/WSLg, v2.1.215)

Status Open
Reported on v2.1.215
Maintainer reply None cached
Activity 0 comments · opened Jul 20, 2026

Summary

Voice mode captures audio and enters "Processing" but transcription returns blank
almost always — it succeeded exactly ONCE across ~15 attempts, then failed again
under identical conditions. Intermittent, not deterministic.

Environment

  • WSL2 + WSLg on Windows 11
  • Claude Code 2.1.215 (CLI, /home/sv/.local/bin/claude)
  • PULSE_SERVER=unix:/mnt/wslg/PulseServer
  • Recorder: SoX with libsox-fmt-pulse (sox --help lists the pulseaudio driver)
  • Mic: wired EarPods (also tested with inbuilt Intel Smart Sound array)

What works (audio chain verified good)

Direct capture via rec produces clean, correctly-leveled, audible audio:

  • rec -q -t wav /tmp/x.wav trim 0 4 then sox /tmp/x.wav -n stat
  • Best clean sample: Maximum amplitude 0.53, RMS 0.032, no clipping
  • WAV plays back clearly in Windows Media Player (words intelligible)

So the microphone, WSLg bridge, and SoX pulse backend are all functioning.

What fails

  • Hold Space -> speak -> release -> "Processing" -> blank, no text in prompt
  • Enter does nothing (nothing to submit)
  • claude --verbose shows no transcription error
  • Transcribed correctly ONCE ("how are you" for "hello how are you"), then the same

setup produced nothing on subsequent tries

Ruled out

  • Token/auth expiry — chat works in the same session, so auth is valid
  • Windows mic privacy (both toggles on), Windows default device (correct), input level (100%)
  • Audio too quiet — reproduced blank result even with clean 0.53-amp / 0.032-RMS capture

Suspected

A flaky transcription-service handshake (possibly interacting with which device WSLg
has bridged across restarts). Root cause NOT isolated. Same blank-after-processing
symptom is reported on native Windows (#38983, #38753) and macOS (#38918) with good
audio, suggesting the transcription step — not audio or WSL — is the common factor.

Related

#38983, #38753, #38918

View original on GitHub ↗