Backup codec publish robustness follow-ups (from #1159 review)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- android, flutter, javascript
Research direction
Start by reading addSimulcastTrack, createSimulcastTransceiverSender, restartTrack, and clearSimulcastState in the Flutter SDK, then compare the mentioned JavaScript behavior in LocalParticipant.ts. Trace the existing publish, unpublish, and reconnect tests; the issue also calls for mock e2e container video-publish support. Done means the failure, duplicate, recovery, and cleanup cases are covered and the backup codec republishes as intended.
Written by the indexing model from the issue text.
Description
Deferred items from the #1159 review, none urgent since #1159 removed the paths that made the first two reachable.
- No rollback when backup codec publish fails mid flight.
addSimulcastTrackinserts intosimulcastCodecsbeforecreateSimulcastTransceiverSender, a failure leaves the entry with a null sender and the codec will not retry until unpublish or full reconnect. Same structure exists in JS. -
addSimulcastTrackthrows on duplicate where JS logs and skips. Porting JS behavior means a nullable return (breaking API per dart-apitool) or an idempotent skip, needs a small design decision and its own test. - Consider
restartTrack()duringrePublishAllTrackslike JS, to recover capture after device sleep. - Integration test that unpublish and full reconnect actually invoke
clearSimulcastState(needs mock e2e container video publish support).
Cross SDK findings worth reporting upstream while porting this cleanup:
- JS gates its simulcast cleanup on
trackSendernon null and PC state, so the stale state fixed by #1159 is reachable there too (LocalParticipant.ts unpublishTrack). - Android never clears
simulcastCodecsat all.
Both fail silently because their duplicate handling skips instead of throwing, the backup codec just never republishes.
- Dominant language
- Dart
- Stars
- 421
- Forks
- 260
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 11
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from livekit/client-sdk-flutter
-
`jwtPayload.roomConfiguration` returns null fields for tokens from LiveKit server SDKsPossibly taken @RaphaelFakhri claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
livekit/client-sdk-flutter#1243 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 57/100
livekit/client-sdk-flutter#1245 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
livekit/client-sdk-flutter#1227 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
livekit/client-sdk-flutter#1221 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 30/100
livekit/client-sdk-flutter#1219 · 1 reaction ·
Maintainers usually reply within 1 day
All issues in livekit/client-sdk-flutter
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
basictech01/uniun#300 ·
Maintainers usually reply within 1 day
-
Listener that removes itself in its callback causes other listeners to miss updatesPossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
RevenueCat/purchases-flutter#1962 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 5 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
jhomlala/betterplayer#1609 ·
Maintainers usually reply within 1 day