Close the open user turn before failing over to a backup STT provider
If the primary speech-to-text stream emits "user started speaking" and then fails before "user stopped speaking", the pipeline still believes the caller is mid-turn. A fallback that only receives silence never produces a boundary, so the bot never replies. A second trap was a standby STT stream connected eagerly but sent no audio: its connect delays and idle-timeout errors were treated as fatal and ended healthy calls. On primary failure, emit a stop or reset for the open turn and ask the caller to repeat. Connect the fallback lazily, within a bounded window, only after the primary fails. Treat errors from an inactive or still-reconnecting fallback as non-fatal. Add a regression test for start-of-turn, then primary failure, then fallback transcript.
Applies when: a voice pipeline runs primary and backup STT providers such as Deepgram or a self-hosted recognizer. Keywords: STT failover fallback Deepgram Pipecat UserStartedSpeaking turn state stuck silence lazy connect idle timeout fatal error