I was testing my production voice agent and I got hit with this error : livekit_api::signal_client:530:livekit_api::signal_client - dropping pass-through signal — no stream available
Oh and I also got this when looking in the logs : ERROR:livekit.agents:speech not done in time after interruption, cancelling the speech arbitrarily.
@Keynar, The first warning means a WebRTC negotiation signal (ICE candidate, SDP offer/answer, SyncState, Leave) hit the SDK while the WebSocket was disconnected. These can’t be queued because they only make sense at send time, so the SDK drops them and logs that line [ rust-sdks/livekit-api/src/signal_client/mod.rs:540, with the pass-through list at line 642 ]. Occasional ones during reconnects are normal; a flood means your signaling is unstable and the fix is network-side, not in your code.
The second is the framework’s own safety net firing. On interrupt, the agent sets an interrupt future and schedules a timer; if your TTS or avatar audio doesn’t stop within INTERRUPTION_TIMEOUT, the timer force-cancels them and logs that error [ livekit-agents/livekit/agents/voice/speech_handle.py:220 ]. So the fallback is already running for you. What to fix is whichever component is slow to honor cancellation, usually a TTS that buffers too far ahead. A faster-stopping TTS or tighter first-chunk loop clears it.