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

View full release notes →

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 setSinkId requires 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

View full release notes →

0.84.1

  • Fixed remaining vulnerabilities in dependencies.

0.84.0

  • Reduced initial call-machine bundle download size by ~2MB with dynamic loading.
  • Added digitDurationMs option to sendDTMF() 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_keys domain 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_compositor flag.
  • 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-json as a valid dataOutputs option for recordings via the REST API. We’re considering making event-json the default output format and invite feedback from the community. Note that this would add an additional event-json file 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-only room and meeting token property.
  • New max_api_keys domain property to configure the maximum number of API keys per domain.