Release Notes - React Native
This page will keep you updated on all the releases of React Native SDK.
v2.0.0
Release Date: 11th October 2026
Review the Migration Guide before upgrading.
npm install @videosdk.live/react-native-sdk@2.0.0
Change Log:
- The meeting is now a room —
MeetingProvider→RoomProvider,MeetingConsumer→RoomConsumer,useMeeting()→useRoom(),meetingId→roomId,name→ optionalparticipantName,webcamEnabled→ optionalcamEnabled,localWebcamOn→isCamEnabled,localMicOn→isMicEnabled,enableWebcam()→enableCam(),disableWebcam()→disableCam(),onMeetingStateChanged→onRoomStateChanged,useStream()→useRTCStream()andConstants.errors→Constants.VideoSDKError. Nine error names changed fromMEETINGtoROOM, such asINVALID_ROOM_ID; their numeric codes are unchanged. - Other renames —
getAudioDeviceList()→getMics(),switchAudioDevice()→setAudioDevice(),useKeyProvider()→BaseKeyProvider,onChatMessage→onDataReceived,RTCView'smirror→setMirror, and state callbacks passstateinstead ofstatus. ThefacingModevalues"user"and"environment"are now"front"and"back". - Native setup — Uninstall
@videosdk.live/react-native-webrtcand@videosdk.live/react-native-incallmanager, and delete everyregister()call. On Android, add the snapshot repositoryhttps://central.sonatype.com/repository/maven-snapshots/toandroid/build.gradle. On iOS, add theVideoSDKRTCpod to yourPodfileand set the deployment target to 18.0. - Ask for permission before you join — On Android, the SDK no longer asks for camera and microphone access. Call
requestPermission()fromuseMediaDevice()before you join. RoomProviderlifetime —RoomProviderleaves the room when it unmounts. Keep it mounted for as long as the call lasts.- Screen sharing —
enableScreenShare()accepts a track created withcreateScreenShareVideoTrack(). System audio is set withwithAudio, on Android only. On iOS,enableScreenShare()opens the system broadcast picker. - End-to-end encryption — The
keyProviderprop is replaced bysetKeyProvider()andsetParticipantKey(); set the keys before you join.new BaseKeyProvider()takes no arguments, so removediscardFrameWhenCryptorNotReady.setKeyProvider(null)rejects withERROR_INVALID_PARAMETER(3073); callremoveKeyProvider()to turn encryption off. - Streams and tracks — The track factories return
CustomStreamTrackobjects, which have their owntoURL()and are released withstop(). Render participant streams withnew MediaStream([stream.track]).toURL(). A stopped or released track is refused withERROR_INVALID_CUSTOM_VIDEO_TRACK(3029) for video orERROR_INVALID_CUSTOM_AUDIO_TRACK(3030) for audio. - Video processors — Register a processor with
VideoProcessorRegistryin your Android and iOS app code, then select it by name withsetVideoProcessor(). - Audio devices —
onAudioDeviceChangedofuseMediaDevice()receives aMapof device id to device instead of{ selectedAudioDevice, availableDevices }. - Media relay —
onMediaRelayRequestResponsereportsdecisionas"ACCEPTED"or"REJECTED"(Constants.RelayDecision). - RTCView — The default
objectFitis"cover". - Error handling — Camera and microphone failures use general error codes, such as
3017and3018, instead ofERROR_RN_*codes. A wrong-typed or missing argument to an SDK call rejects withERROR_INVALID_PARAMETER(3073), and so doessetLogLevel()with an unknown level. - Removed APIs —
debugMode,register(),mediaDevices,permissions,useCharacter(),useConnection(),mainParticipant,onHlsStarted,onHlsStopped,useParticipant().switchTo(), and external video (startVideo(),stopVideo(),pauseVideo(),resumeVideo(),seekVideo(),onVideoStateChanged,onVideoSeeked). Virtual backgrounds are no longer available through@videosdk.live/react-native-media-effects.
New Features:
- Realtime translation —
useTranslation(), with thespeakingLanguageandtranslationLanguageoptions onRoomProvider. - Camera effects — Auto-framing, low-light enhancement, style effects and colour filters with
setVideoEffects(),getAppliedVideoEffectsConfig()andpublishFramingSubject(). - iOS video processors — Run your own frame processor on iOS as well as Android.
- Image capture — Flash for still captures with
captureImage({ flash: "ON" })on the local participant. - Applied video settings —
getAppliedVideoConfig()onuseRoom()returns the camera settings in use. - Encryption keys —
setParticipantKey()sets or rotates one participant's key, also during a room, andremoveKeyProvider()turns encryption off. - External phone calls —
onExternalCallRinging,onExternalCallAnswered,onExternalCallRejectedandonExternalCallHanguponuseRoom().
The Migration Guide lists every change and every new API.
v1.0.1
Release Date: 14th August 2026
Improvements:
- Downgraded the Android dependencies and Gradle version to improve compatibility with older versions of React Native, Expo, and Android.
v1.0.0
Release Date: 7th August 2026
Major release - contains breaking changes. See the Migration Guide.
Change Log:
- New PubSub:
usePubSubrebuilt for higher throughput and better backpressure handling.- New signature
usePubSub(topic, listeners?, properties?)- listeners and properties are now separate positional arguments. onBatchReceivedfor high-throughput topics;onMessageDropreports when messages were shed.- Backpressure control via
realtimeOverflow("queue" | "drop"),maxQueue,newMessageLimit,oldMessageLimit. onOldMessagesReceivednow receives a second argument{ isLast }.
- New signature
- Promise-based API: Every method returned from
useMeeting,useParticipant,useMediaStream, etc. now returns aPromiseand throws on failure withcode,name, andmessage- errors surface at the call site instead of only ononError. - Consistent tracks across events: The SDK now persists your custom track config for the lifetime of the meeting - pass it once and it's reused on later
enableWebcam()/unmuteMic()calls, and preserved across mode changes and reconnects. - Introduced
ERROR_OPERATION_TIMED_OUT(3079), raised by any method whose request goes unanswered - whether the server did not respond in time or the connection dropped before the request could be sent.
Breaking Changes:
- All methods return
Promises - addawaitandtry/catch; errors expose.code,.name,.message. usePubSub(topic, options)→usePubSub(topic, listeners, properties); listeners and properties are now separate arguments.- Removed
publishAudio/publishVideo/publishScreenShareand theunpublish*aliases - useunmuteMic/enableWebcam/enableScreenShareand their disable counterparts.
Bug Fixes:
- Fixed an issue where
selectedWebcamandselectedMicwere not being set correctly during join. - Fixed
stream-enabledandstream-disabledevents firing before the previous media operation completed, allowing media operations such asdisableWebcam()to be safely called directly from the event handler.
Docs: Migration Guide
v0.11.1
Release Date: 23rd June 2026
Change Log:
- When a meeting fails to join during the
join()method, the SDK now triggers theonErrorcallback fromuseMeetingwith the corresponding error code and message, transitions to theFAILEDstate, and aborts the join process.
v0.11.0
Release Date: 5th June 2026
Change Log:
- Added support for selectable video codecs in
createCameraVideoTrack(). The newcodecoption supportsVP8,VP9,AV1, andH264throughVideoSDK.Constants.VideoCodec. - Added the following Agent Participant APIs:
consumeWebcamStreams()consumeMicStreams()stopConsumingWebcamStreams()stopConsumingMicStreams()
- Introduced the
runPreCallTest()method to evaluate a user's environment before joining a meeting. - Removed the deprecated
getNetworkStats()method; userunPreCallTest()for richer media and network diagnostics.
Bug Fixes:
- Fixed an issue in
createMicrophoneAudioTrack()where the selected audio profile was not applied correctly. - Fixed an issue in the
useAgentParticipant()hook where passing a regular participant ID (or vice versa) could result in an unexpected error. - Fixed an issue with the crash of the
captureImage()method.
Docs :
v0.10.1
Release Date: 24th April 2026
Change Log:
- Removed the requirement for Bluetooth permissions to join a meeting.
- Agent transcript segments now include a new
typefield.
v0.10.0
Release Date: 13th April 2026
Bug Fixes:
-
Fixed unnecessary re-render issues in React Native.
Docs: Check out Best Practices
v0.9.0
Release Date: 18th March 2026
Changelog
-
Introduced
useAgentParticipanthook for working with AI agents in a room. Agents can be identified using theisAgentproperty when they join.Docs: AgentParticipant
-
Added
AgentStateenum (IDLE,LISTENING,THINKING,SPEAKING) to represent the agent lifecycle.Docs: AgentState
-
Added callbacks for agent updates:
-
onAgentStateChangeto track state transitions.Docs: onAgentStateChange
-
onAgentTranscriptionReceivedto receive real-time transcription.Docs: onAgentStateChange
-
v0.8.0
Release Date: 19th Feb 2026
Changelog
- Configurable Log Level: Introduced the
setLogLevelmethod inVideoSDK, enabling developers to control log verbosity. This improves debugging efficiency during development.
Documentation
v0.7.3
Release Date: 13th December 2025
Bug Fix:
- Fixed an issue where users did not receive remote participants’ media streams after reconnecting.
v0.7.1
Release Date: 5th December 2025
Bug Fix:
- Resolved an issue where the camera failed to enable when
multistreamwas set tofalse.
v0.7.0
Release Date : 3rd December 2025
Bug Fixed :
- Resolved an issue where the
onMeetingLeftevent was not triggered when a local participant left due to a duplicate participant scenario. - Fixed the
onMeetingStateChangedevent behavior forSIGNALLING_ONLYandRECV_ONLYmodes.
Change Log:
- Updated the publish method in PubSub to accept only string messages. An error will now be thrown if any data type other than the string is passed.
- Removed unsupported encoderConfig.
- Updated the default encoderConfig value in
createCameraVideoTrack()toh720p_w1280p. - Introduces advanced video track optimization features, enabling greater flexibility and control over quality and bandwidth. Below are the new parameters added to
createCameraVideoTrack().-
BitrateMode
- Added the BitrateMode parameter to manage video quality and bandwidth usage easily.
- Developers can now select from three modes based on their requirements:
bandwidth_optimizedbalanced (default)high_quality- Docs: BitrateMode
-
maxLayer
- Introduced the
maxLayerparameter to allow developers to specify the maximum number of simulcast layers published for a video track. - Docs: maxLayer
- Introduced the
-
0.6.0
Release Date : 21th November 2025
Change Log :
- All trace messages are now user-facing, with improved clarity and readability.
v0.5.0
Release Date : 6th November 2025
Change log :
-
Realtime store – Introduced support for storing, updating, retrieving, and observing custom key-value data within a meeting in real time.
-
meetingleft resons – Added detailed parameters to indicate the reason why a local participant left the meeting.
-
participantleft resons – Added detailed parameters to specify the reason why a remote participant left the meeting.
-
Adaptive Subscriptions (BETA) - Added support for dynamically adjusting media subscriptions to optimize bandwidth and performance.
-
onQualityLimitation Event - Enables detection of bandwidth constraints, network congestion, or CPU limitations during a meeting, helping monitor local call quality in real time.
-
useStream Hook – Introduced a new React Native hook providing direct access to media stream methods and properties for easier stream management.
-
onStreamStateChanged Event - Added an event to detect changes in stream state (e.g., freeze, stuck, recovery) for improved monitoring of remote participants’ stream health.
docs:
- RealtimeStore
- onMeetingLeft
- onParticipantLeft
- Adaptive Subscriptions
- onQualityLimitation
- useStream
- onStreamStateChanged
v0.4.2
Release Date : 29th October 2025
Improvement :
- Made compatible with React Native 0.82+ and Expo SDK 54+.
v0.4.1
Release Date : 14th October 2025
Bug Fixes:
- Resolved an issue with the
defaultCameraparameter inMeetingProvider. - Fixed the behavior of
changeWebcam()to handle cases where no parameter is provided.
v0.4.0
Release Date : 29th Sep 2025
Change Log :
- Added support for screen share audio on Android.
Bug Fixes:
- Resolved crashes related to
FOREGROUND_SERVICE_IMMEDIATEand security vulnerabilities during screen share on Android. - Fixed initialization of the key provider for E2EE.
- Corrected an issue where meeting statistics were not emitted on Android devices.
Docs:
v0.3.12
Release Date : 9th August 2025
Change Log :
- Introduced a new custom track profile
h360p_w640p_150kbps, optimized for low-bitrate consumption at 360p resolution.
v0.3.9
Release Date : 25th July 2025
Bug Fixes:
- Resolved conflicts between WebRTC versions on the React Native iOS side.
v0.3.8
Release Date : 15th July 2025
Bug Fixes:
- Added proper
mediaProjectionsupport and required permissions to enable screen sharing on Android Q and above. - Updated
compileSdkVersion,targetSdkVersion, andminSdkVersionfor full compatibility with Android API level 34.
v0.3.7
Release Date : 25th June 2025
Change Log :
- Resolved a dependency issue causing failures in locating the library
com.github.jiangdongguo.AndroidUSBCamera:libausbc:3.3.3.
v0.3.6
Release Date : 18th June 2025
Change Log :
- Fixed an error where the
documentproperty was not found when invoking thesetQualitymethod.
v0.3.5
Release Date : 13th June 2025
Change Log :
- Added PiP support for iOS.
Docs:
v0.3.4
Release Date : 20th May 2025
Change Log :
- Fast Channel Switching – Enables instant transitions between live streams with minimal latency.
- Media Relay Support – Allows hosts to share their media with other live streams for collaborative broadcasts.
Docs:
v0.3.1
Release Date : 24th April 2025
Change Log :
- Added support for End-to-End Encryption (E2EE) to ensure secure media transmission between participants.
Docs: E2EE
v0.3.0
Release Date : 21st April 2025
Change Log :
- Added
pauseAllStreams()andresumeAllStreams()methods inuseMeeting. - Added
onPausedAllStreamsandonResumedAllStreamsevent listeners.
Docs:
v0.2.0
Release Date : 21st Jan 2025
Change Log :
- Replaced
CONFERENCEwithSEND_AND_RECVandVIEWERwithSIGNALLING_ONLY. - Added
RECV_ONLYfor live streaming. - Enabled seamless role switching using
changeMode()inuseMeeting.
Docs: Quick Start for Interactive Live Streaming
v0.1.19
Release Date : 24th Oct 2024
Change Log :
- Introduced the
useWhiteboardhook for managing collaborative sessions. - Removed the default foreground service steps in the base implementation; add the screen share steps if required.
Got a Question? Ask us on discord

