Voice mode activates mid-session despite voiceEnabled: false in settings.json (v2.1.110)
Resolved 💬 2 comments Opened Apr 19, 2026 by markyo58 Closed May 26, 2026
Summary
Voice mode activates spontaneously mid-session even when voiceEnabled: false and voice.enabled: false are correctly set in ~/.claude/settings.json. When it activates, it reads the previous reply (one behind), suggesting late initialisation rather than correct startup behaviour.
Environment
- Claude Code version: 2.1.110
- Platform: macOS (Mac GUI)
- Settings file:
~/.claude/settings.json
settings.json (relevant excerpt)
\\\json\
"voiceEnabled": false,
"voice": {
"enabled": false,
"mode": "hold"
}
\\
Steps to reproduce
- Set both
voiceEnabledandvoice.enabledtofalsein~/.claude/settings.json - Start a new Claude Code GUI session
- Send 2–3 messages
- Voice activates on approximately the 2nd or 3rd interaction — reads the previous reply aloud
Observed behaviour
- Session starts silently (settings appear to load correctly)
- After 2–3 user interactions, voice output begins without user action
- Audio reads the previous reply, not the current one — consistent with mid-session initialisation
- Restarting Claude Code clears it for that session, but it recurs
Expected behaviour
With voiceEnabled: false, voice should never activate. No audio output at any point in the session.
Additional notes
- This is distinct from the previously reported issue where
voiceEnabled: truefails to start the listener on session start (#30658, #34012, #34464) - The "one behind" read behaviour suggests the audio listener initialises late and immediately reads whatever was last rendered
- Interaction count trigger appears variable (2nd or 3rd turn) — may be content-length or render-event dependent rather than a strict N-turn threshold
- Related regressions noted from v2.1.70 onwards (#33378, #35980) — unclear if this is the same root cause or a new manifestation
Workaround
Restart Claude Code when voice activates. Does not prevent recurrence.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗