Best Practices for Conversation Relay Provider Failover Twilio published best-practice guidance for building application-level provider failover into Voice AI agents running on Twilio Conversation Relay, which uses a third-party transcription (ASR/STT) provider and a text-to-speech (TTS) provider on every call. The guide instructs developers to always set an action URL on and to check ErrorCode rather than only SessionStatus, because some mid-call ASR failures report SessionStatus=ended while still including an ErrorCode. It also notes that mid-call TTS failures keep the call connected and surface only as WebSocket error messages, so the developer's server must detect them and send an end message with handoffData before switching providers in the following TwiML. Best Practices for Conversation Relay Provider Failover Time to read: Written by Reviewed by When you're scaling Voice AI agents in production using Twilio Conversation Relay https://www.twilio.com/docs/voice/conversationrelay , keeping your architecture uninterrupted is critical. That’s especially true during high-volume events like Black Friday or Cyber Monday, or sudden traffic spikes. High load or unexpected provider degradation can introduce latencies, connection drops, or request failures. To harden your Conversation Relay infrastructure against these risks, you need an application-level failover strategy. Conversation Relay https://www.twilio.com/docs/voice/twiml/connect/conversationrelay uses two speech providers on every call: a transcription ASR/STT provider that turns the caller's speech into text, and a text-to-speech TTS provider that speaks your agent's replies. Each one is a third-party service, such as Deepgram, Google, ElevenLabs, or Amazon. Sometimes, a service might be slow, unavailable, or reject a request. This guide covers: - How a provider failure reaches your application, at startup and mid-call. - Which error codes to look for. - How to return new