Slow reconnect after extended outages + missing ParticipantConnected on agent rejoin
Voice-agent product on LiveKit Cloud + Flutter SDK. Controlled Android outage tests (5s / 25s / 84s) surfaced two issues.
1. SDK ignores app-layer connectivity signal
Our OS connectivity monitor detects internet back before the SDK does, on longer outages where its backoff has grown:
Outage | App sees net back | SDK TRANSPORT RESTORED | Delta -- | -- | -- | -- ~5s | 18:44:20.542 | 18:44:20.077 | SDK −0.47s ~25s | 18:45:24.178 | 18:45:25.026 | App +0.85s ~84s | 18:47:17.834 | 18:47:18.660 | App +0.83sAsk: a room.hintReconnectNow() (or Stream<bool> at construction) that collapses the SDK's current backoff. No-op if already healthy. Not a replacement for the SDK's retry logic — just a hint.
2. ParticipantConnected not fired when same agent rejoins
On same-room reconnect, SDK fires TrackSubscribed but not ParticipantConnected:
18:44:20.499 Audio track subscribed during reconnecting — treating as ParticipantConnected
18:45:25.200 Audio track subscribed during reconnecting — treating as ParticipantConnected
Both were successful rejoins of the same agent identity. On a new-room reconnect (different identity), ParticipantConnected fires normally — so the event works for fresh participants but not rejoined ones.
Ask: intended or bug? If intended, docs for ParticipantEvent.participantConnected should say so.
Repro
- Room with agent attached, confirm initial
ParticipantConnected - Airplane mode on 25s, off
- Observe:
TRANSPORT RESTORED~800ms after OS reports network;TrackSubscribedfor rejoined agent but noParticipantConnected
Source: livekit/livekit