[BUG]Voice playback falls back to macOS system TTS — account-scoped, reproduced against a second account on same machine/browser
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Voice playback on my paid account falls back to macOS system TTS (Daniel et al.) instead of the selected Claude voice. Mac mini M4, macOS 15.1, Chrome Version 150.0.7871.186, DuckDuckGo Version 1.199.0 (762) and the macOS desktop app all affected. iPhone and iPad on the same account play the correct voice fine.
Isolated to the account: created a free account, signed into it in the same Chrome on the same machine, voice playback works correctly. Signed back into my paid account in that same browser and Claude app— broken again.
Affects every voice, not just my selection (tested ALL voice models, same fallback). Started immediately after a desktop app update 20260725. Not network — same failure on hotspot, and two other devices on the same Wi-Fi work. Full sign-out/in, hard reload, app reinstall-level cache clearing, and reboot all tried.
What Should Happen?
Hitting the playback button should simply “play back” the reply in the selected voice.
Error Messages/Logs
none
Steps to Reproduce
- On a Mac running macOS 15.1, sign in to Claude on a paid account — either the macOS desktop app or claude.ai in Chrome.
- Settings → set voice output to any Claude voice (e.g. Buttery).
- Open any conversation and press Play on an assistant response.
- Observed: audio plays in a local macOS system TTS voice instead of the selected Claude voice. Fails identically in the desktop app and in Chrome.
- Change the voice selection to any other Claude voice and press Play again. Audio still plays local system TTS, but a different system voice — macOS resolves to the nearest installed match by locale and gender (e.g. selecting a UK-accented Claude voice yields "Daniel" en-GB; selecting a US male voice yields a US male system voice).
- Expected: the selected Claude voice, as heard on iOS/iPadOS on the same account.
To confirm it's account-scoped rather than machine-scoped:
- In the same Chrome, sign out and sign in to a different (free) account.
- Press Play on any response. Audio plays the correct Claude voice.
- Sign back in to the original paid account in that same browser. The system-TTS fallback returns.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
whichever build preceded 1.24012.9; that one was working as of 2026-07-25
Claude Code Version
2.1.220
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_