#4477·livekit

Slow reconnect after extended outages + missing ParticipantConnected on agent rejoin

Author: ansh-tanCreated Apr 24, 2026Updated Sep 2, 2026

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.83s

Ask: 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

  1. Room with agent attached, confirm initial ParticipantConnected
  2. Airplane mode on 25s, off
  3. Observe: TRANSPORT RESTORED ~800ms after OS reports network; TrackSubscribed for rejoined agent but no ParticipantConnected