Warm transfer summary not working in prod. Works j...
# ask-ai
l
Warm transfer summary not working in prod. Works just fine in dev with LiveKit agents playground, but agent won't say anything in a real production environment call. Only type of log I see is "elevenlabs tts returned error"
t
Thanks for reaching out, Ibrahim. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Thanks — I’m sorry you’re hitting this in production while it works in dev. I’ll help narrow this down. I’m responding to your note that warm transfer summary works in the LiveKit agents playground but in production the agent is silent and the only log is “elevenlabs tts returned error.” Quick summary of likely causes • The production environment is using a different TTS path than playground (LiveKit Inference vs ElevenLabs plugin). If production uses the ElevenLabs plugin, an API key, voice ID, or quota/permission issue is the most common cause. • The voice/model used in dev may not be available in production (custom or cloned voices often require a direct ElevenLabs account). • Network, environment variables, or error handling in production could be preventing successful synthesis. What I recommend we check next 1) Confirm which TTS mechanism your production warm transfer uses • Are you using LiveKit Inference (no external API key) or the ElevenLabs plugin (requires
ELEVEN_API_KEY
)? 2) If you use the ElevenLabs plugin, verify these in prod •
ELEVEN_API_KEY
is present and correct in the production environment. • The key has remaining quota and permissions for the requested model/voice. • The voice_id and model you pass are valid for that account (try a default ElevenLabs voice to test). 3) Capture more detailed TTS error output • Enable/collect the
metrics_collected
event for TTS so you can see the
TTSMetrics.error
details instead of the high-level message. That error string will usually point to auth, model/voice mismatch, rate limits, or payload problems. 4) Compare dev vs prod configs • Model and voice_id values • Whether dev used LiveKit Inference implicitly (Playground often does) • Any environment differences: env vars, network/firewall rules, timeouts 5) Quick smoke tests to run in production • Try synthesizing a short sample text using the same production TTS config (voice/model/API key) outside of the warm transfer flow to isolate TTS from transfer logic. • Try switching to a known-working default voice/model to see if synthesis succeeds. If you can share these details, I’ll help interpret them and provide concrete next steps: • Are you using LiveKit Inference or the ElevenLabs plugin in production? • The production TTS config: model and voice_id (mask any secrets). • The exact/expanded log around the “elevenlabs tts returned error” (especially anything from
metrics_collected
or an error code/message). • Whether
ELEVEN_API_KEY
is set in prod and how it’s injected (env var, secret manager, etc.). What I can do after you share that • Point out the exact misconfiguration (auth, voice availability, quota). • Show the minimal code/config change to make TTS succeed in production. • Provide a short test snippet you can run in prod to verify TTS independently. I’m ready to help as soon as you paste the TTS config and the richer error output. Sources: Tasks and task groups | LiveKit Documentation | ElevenLabs TTS | LiveKit Documentation | ElevenLabs TTS plugin guide | LiveKit Documentation | TTS Metrics | LiveKit Documentation