# livekit v1.9.12 - Product: livekit (https://whatsnew.fyi/product/livekit) - Vendor: livekit - Date: 2026-03-05 - Version: v1.9.12 - Original notes: https://github.com/livekit/livekit/releases/tag/v1.9.12 - Permalink: https://whatsnew.fyi/product/livekit/releases/v1.9.12 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add silent frame for pcmu/a - **added** — Add test to ensure agent worker errors cause disconnection - **added** — Populate client_protocol field in ParticipantInfo - **added** — Read client protocol from query param - **added** — Generate and log egressID for start egress request - **added** — Add ESP32 Client Info - **added** — Make INSTALL_PATH overridable in install script - **changed** — Defer setting clock rate in RTPStats module till codec is bound - **changed** — Wrap SIP errors for invalid argument and not found - **changed** — Ignore parse addr error when add remote candidate - **changed** — Generate config flags - **changed** — Clear reference guard when resetting signal stats - **changed** — Refresh telemetry guard on participant move - **changed** — Use separate allocation for signal stats telemetry guard - **changed** — Set up audio config in audio level module when config is updated - **changed** — Update self-hosting deployment documentation link - **changed** — Key telemetry stats worker using combination of roomID and participantID - **changed** — Implement two phase restart when doing external restart of receiver - **changed** — Send participant left event after track unpublished for moved - **fixed** — Fix receiver restart race - **fixed** — Require participant broadcast when metadata/attributes are set in token - **fixed** — Create buffer if needed when a PLI is requested - **fixed** — Do not increase max expected layer on track info update - **fixed** — Ensure publish is always on publisher peer connection - **fixed** — Add permissions to workflow to fix code scanning alert - **fixed** — Fix CodeQL reported issues - **fixed** — Protect against incorrect temporal layer - **fixed** — Do not discount packets lost on duplicate packets - **fixed** — Use ParticipantTelemetryListener of LocalParticipant - **fixed** — Fix SIP client timeout ###### Added - Add silent frame for pcmu/a (#4258) - adds a test to ensure agent worker errors cause disconnection (#4273) - Populate client_protocol field in ParticipantInfo (#4293) - Read client protocol from query param (#4294) - generate & log egressID for start egress request (#4303) - ESP32 Client Info (#4267) - feat: make INSTALL_PATH overridable in install script (#3954) ###### Changed - Defer setting clock rate in RTPStats module till codec is bound. (#4250) - Wrapping SIP errors for invalid argument and not found (#4253) - Ignore parse addr error when add remote candidate (#4264) - Generate config flags (#4268) - clear reference guard when resetting signal stats (#4279) - refresh telemetry guard on participant move (#4280) - use separate allocation for signal stats telemetry guard (#4281) - Set up audio config in audio level module when config is updated. (#4290) - Update self-hosting deployment documentation link (#4312) - Key telemetry stats worker using combination of roomID, participantID (#4323) - Two phase restart when doing external restart of receiver. (#4329) - Send participant left event after track unpublished for moved (#4334) ###### Fixed - Fix receiver restart race (#4248) - require participant broadcast when metadata/attributes are set in token (#4266) - Create buffer if needed when a PLI is requested. (#4282) - Do not increase max expected layer on track info update. (#4285) - Publish is always on publisher peer connection.(#4307) - Potential fix for code scanning alert no. 35: Workflow does not contain permissions (#4311) - Potential fix for code scanning alert no. 36: Workflow does not contain permissions (#4310) - Fix for some CodeQL reported issues (#4314) - Protect against incorrect temporal layer. (#4327) - do not discount packets lost on duplicate packets (#4333) - Use ParticipantTelemetryListener of LocalParticipant. (#4342) - Fix SIP client timeout. (#4345)