brave-author-62043
03/16/2026, 3:18 AMtall-airline-16756
03/16/2026, 3:18 AMtall-airline-16756
03/16/2026, 3:18 AMperformRpc() and registerRpcMethod() to do request/response between participants.
◦ Configurable timeouts and RpcError handling. You may want to add handling for RPC timeouts and errors in your app.
• Data Streams (experimental)
◦ New experimental APIs for sending larger payloads via packetization/depacketization (supports text streams and multi-packet messages).
◦ If you use data channels for large messages, test and consider switching to the new APIs for reliability.
• Data channel improvements (lossy/reliable)
◦ Lossy data channels now support adjustable latency behavior, and packetization helps send larger payloads reliably.
◦ Review any custom packet framing you have to ensure compatibility with built-in packetization.
• End-to-end encryption (E2EE) enhancements
◦ E2EE now extends to data channels in addition to media tracks.
◦ Encryption work is performed in a dedicated Web Worker (e2ee.worker.mjs) for performance.
◦ Supported codecs called out: VP8, VP9, H.264, H.265 (video) and Opus (audio).
◦ If you use custom key providers or handle encryption errors, test flows for EncryptionError and key exchange/migration.
• React Native and mobile improvements
◦ Data channel encryption is supported in React Native.
◦ Pre-connect audio buffering added to improve audio reliability on mobile. If you support RN, validate audio behavior after upgrade.
• Audio output device selection
◦ New helper supportsAudioOutputSelection() and use of HTMLMediaElement.setSinkId() where supported.
◦ Note: browser support varies (Chromium supports setSinkId; Safari does not). Add feature detection and fallbacks.
• Device switching and robustness
◦ Improved logic to avoid unnecessary track restarts when switching devices using ideal constraints.
◦ Better handling around device disconnection/reconnection; test device plug/unplug flows.
Resilience, reconnection, and error-handling improvements
• Improved reconnection strategy: exponential backoff, ICE restarts, WebSocket reconnections — expect more robust resume behavior but test for edge cases you depend on (negotiation timing, resume/migration).
• Better recovery for peer connection mismatches and negotiation timeouts; ensure any custom retry logic you implemented doesn’t conflict with the SDK’s improved behavior.
Potential breaking or impactful areas to test
• Data channel behavior: packetization and E2EE on data channels could change how messages are encoded/decoded.
• E2EE integration: if you implemented custom encryption hooks, make sure they’re compatible with the worker-based encryption flow.
• Device selection and audio output: cross-browser differences (especially Safari) may require conditional handling.
• Events and error types: new RPC and encryption error types mean you may need to add handlers for new event/error names.
Recommended upgrade steps
1. Run integration tests covering:
◦ Data channel send/receive (small and large messages)
◦ E2EE flows (media and data)
◦ RPC calls (success, timeout, error)
◦ Device switch, disconnect/reconnect, audio output selection
◦ Reconnection/resume scenarios
1. Feature detection and fallbacks:
◦ Use supportsAudioOutputSelection() before calling setSinkId().
◦ Detect whether the environment supports Web Worker-based E2EE for data channels (React Native specifics).
1. Add/update error handling:
◦ Handle RpcError, EncryptionError, and any new data events.
◦ Reduce duplicate retry logic that may conflict with SDK reconnection handling.
1. If you use React (or React Native):
◦ Test UI components for any new events or lifecycle differences; consider using @livekit/components-react for easier integration where helpful.
If you want, I can:
• Provide a focused test checklist tailored to your app (web or React Native).
• Review any specific areas of your code (data channel handling, encryption, device management, or reconnection logic) to point out specific lines or patterns to change.
Would you like a custom upgrade checklist for web or React Native, or help mapping the new RPC and E2EE APIs to your existing code?
Sources: client-sdk-js | livekit/livekit_composite | DeepWiki | OpenAI and LiveKit partner to turn Advanced Voice into an API | LiveKit