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
- Room with agent attached, confirm initial
ParticipantConnected
- Airplane mode on 25s, off
- Observe:
TRANSPORT RESTORED ~800ms after OS reports network; TrackSubscribed for rejoined agent but no ParticipantConnected
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:
Ask: a
room.hintReconnectNow()(orStream<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.
ParticipantConnectednot fired when same agent rejoinsOn same-room reconnect, SDK fires
TrackSubscribedbut notParticipantConnected:Both were successful rejoins of the same agent identity. On a new-room reconnect (different identity),
ParticipantConnectedfires normally — so the event works for fresh participants but not rejoined ones.Ask: intended or bug? If intended, docs for
ParticipantEvent.participantConnectedshould say so.Repro
ParticipantConnectedTRANSPORT RESTORED~800ms after OS reports network;TrackSubscribedfor rejoined agent but noParticipantConnected