#18957: fix(tts): replace deprecated ElevenLabs eleven_monolingual_v1 model
channel: mattermost
gateway
size: XS
Cluster:
Voice Call and TTS Improvements
## Summary
ElevenLabs deprecated the `eleven_monolingual_v1` model, which is no
longer available on the free tier. The gateway model catalogue still
listed it, so users selecting it from the UI would get unexpected
results (default female voice regardless of voice ID).
Replaces `eleven_monolingual_v1` with `eleven_flash_v2_5` (the modern
equivalent for fast, cost-effective TTS) in the gateway model list.
The runtime default model (`eleven_multilingual_v2`) was already correct
and is unchanged.
Closes #18895
## Changes
- `src/gateway/server-methods/tts.ts` – replace `eleven_monolingual_v1`
with `eleven_flash_v2_5` in the ElevenLabs model catalogue
## Test plan
- [x] Verified the runtime default (`eleven_multilingual_v2`) is unchanged
- [x] Verified `eleven_flash_v2_5` is a valid ElevenLabs model ID
- [ ] Manual: check the TTS provider list in the Web UI shows the updated model
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Replaces the deprecated ElevenLabs `eleven_monolingual_v1` model with `eleven_flash_v2_5` in the gateway TTS provider catalogue, so the UI no longer lists an unavailable model. The runtime default (`eleven_multilingual_v2`) is unchanged.
- `src/gateway/server-methods/tts.ts`: Swapped `eleven_monolingual_v1` → `eleven_flash_v2_5` in the ElevenLabs model list returned by the `tts.providers` handler.
- `src/telegram/bot.test.ts`: Fixed test assertions to use `normalizeTelegramCommandName()` when comparing native command names, aligning with the production code in `bot-native-command-menu.ts`.
- `CHANGELOG.md`: Added a changelog entry under Fixes for the TTS model replacement.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk — it swaps a deprecated model string and fixes a test assertion.
- All three changes are low-risk: a static string replacement in a model catalogue list, a test fix aligning assertions with production normalization logic, and a changelog entry. No logic, control flow, or runtime defaults are altered. The new model ID (`eleven_flash_v2_5`) is already referenced in the repo's skill docs.
- No files require special attention.
<sub>Last reviewed commit: 427a78d</sub>
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#18958: fix: replace deprecated eleven_monolingual_v1 with eleven_flash_v2
by jwchmodx · 2026-02-17
91.1%
#18927: TTS: default to eleven_flash_v2_5, drop eleven_monolingual_v1, add ...
by saurav470 · 2026-02-17
83.3%
#16089: fix(tts): clarify directive syntax in prompts and strip malformed tags
by kmixter · 2026-02-14
76.5%
#8317: fix(tts): add dynamic timeout and retry logic for ElevenLabs TTS
by camtang26 · 2026-02-03
75.3%
#3496: fix(tui): handle /model status and /model list subcommands
by zerone0x · 2026-01-28
74.7%
#22086: fix(tts): honor explicit config provider and model/voice settings
by AIflow-Labs · 2026-02-20
74.2%
#19073: feat(voice-call): streaming TTS, barge-in, silence filler, hangup, ...
by odrobnik · 2026-02-17
73.5%
#8339: fix(tts): validate ElevenLabs base URL against allowlist
by yubrew · 2026-02-03
73.5%
#6677: fix(tts): always load fresh config for voice selection
by Jinqiao · 2026-02-01
73.2%
#16478: fix(gateway): fall back to lookupContextTokens on model switch
by colddonkey · 2026-02-14
72.5%