March 29, 2026
Overview
March includes significant performance improvements for daily-js and react-native-daily-js, with the initial call-machine bundle now ~2MB smaller through dynamic loading. Audio processor errors no longer automatically mute the microphone, and testCallQuality() reliability has been fixed. On the server side, VCS streaming layouts gain animation support, and a new max_api_keys domain property lets you limit API key creation per domain. The oldest supported daily-js version has been bumped to 0.81.0, with versions through 0.83.1 approaching end-of-support.
Complete release history for our client SDKs is available in our Github release notes:
daily-js
0.89.1
- Fixed an issue causing all
testCallQuality()tests to fail. - Fixed remaining vulnerabilities in dependencies.
0.89.0
- Reduced initial call-machine bundle download size by ~2MB. Larger portions are now dynamically loaded as-needed.
- Audio processor errors no longer automatically mute the microphone.
- Removed the client-side 3-hour limit for raw-tracks recordings. Limits are now handled server-side.
- Fixed auto-syncing audio output device on Safari, where
setSinkIdrequires a user gesture and was causing repeated errors. - Improved system idle detection to avoid stale reconnect retries after 5 minutes of inactivity. Calls will now leave cleanly in idle scenarios.
- Breaking: If you self-host the call-machine-bundle using
callObjectBundleUrlOverride, a new separate bundle is now required for Krisp noise cancellation. Contact help@daily.co for upgrade instructions.
react-native-daily-js
0.84.1
- Fixed remaining vulnerabilities in dependencies.
0.84.0
- Reduced initial call-machine bundle download size by ~2MB with dynamic loading.
- Added
digitDurationMsoption tosendDTMF()for configurable DTMF digit duration. - Removed the client-side 3-hour limit for raw-tracks recordings.
- Improved system idle detection to avoid stale reconnect retries after 5 minutes of inactivity.
- Breaking: If you self-host the call-machine-bundle using
callObjectBundleUrlOverride, a new separate bundle is now required for Krisp noise cancellation. Contact help@daily.co for upgrade instructions.
Dashboard
- Added a configurable
max_api_keysdomain property to set the maximum number of API keys allowed per domain.
Media Services
Telephony
- Fixed video not working with Linphone SIP client.
- Improved STUN server fallback during SDP negotiation retry.
- Fixed hung media workers caused by unresolved SIP transport promises.
- Improved handling of active SIP sessions during meeting moves.
- Broadcast app messages are no longer sent to participants in the knocking (waiting room) state.
- Oldest supported daily-js version bumped to 0.81.0. Versions through 0.83.1 are approaching end-of-support.
Streaming
- The new VCS pipeline is now the default for new customers. In April, we are transitioning existing customers to the new pipeline; the legacy pipeline will be EOLed later this summer. In the meantime, you can switch between the new and legacy pipelines with the
enable_legacy_compositorflag. - Added a layout animation system for VCS (Video Compositing Service) streaming layouts.
- Fixed RTMP URL handling for streaming destinations.
- Improved jitter buffer latency and added video stall detection for RTMP streaming.
Recording
- Added
event-jsonas a validdataOutputsoption for recordings via the REST API. We’re considering makingevent-jsonthe default output format and invite feedback from the community. Note that this would add an additionalevent-jsonfile to the existing S3 folder and may break downstream workflows that assume only media files are present.
REST API
- Added validation for the
cloud-audio-onlyroom and meeting token property. - New
max_api_keysdomain property to configure the maximum number of API keys per domain.