Video React Native SDK Release Notes

v2.33.4 — October 2026

Fixed

  • Fixed an Android crash (SIGSEGV) that occurred during long-running calls with heavy stream churn. The crash was caused by subscriber event callbacks reading stream data from already-freed native memory. Stream data is now read once at subscribe time into an immutable snapshot; all subsequent callbacks read from the snapshot only.

  • Fixed Android performance degradation during prolonged calls caused by unnecessary event processing. Audio level, audio network stats, and video network stats events are now only forwarded to JavaScript when a handler is attached, eliminating overhead when no listener is registered.

  • Fixed a JS listener lifecycle issue in OTSession where remounting a session accumulated duplicate global event listeners, causing multiplied events and unnecessary re-renders.

  • Fixed shared-state leaks on Android where streams, publishers, and subscribers were not correctly removed from internal maps on unsubscribe, unpublish, or an involuntary disconnect, causing the maps to grow unbounded over time.

  • Fixed an issue on Android where calling publish() before the publisher view had finished attaching could silently drop the publish request.

  • Fixed an issue on Android where calling getCapabilities() before the session connected could crash the app natively. This now rejects with an error instead.


v2.35.0 — September 2026

Added

  • This version updates the Vonage Video Android SDK and iOS SDK to version 2.35.1. For more information, see the Android SDK release notes and the iOS SDK release notes.

  • This version upgrades the React Native version from 0.86 to 0.87. The SDK now requires React Native 0.87 or later.

  • This version raises the minimum iOS deployment target to 17.0. Apps targeting iOS versions earlier than 17.0 must update their deployment target before upgrading to this version.

  • This version requires compileSdk 37 for Android. Ensure your Android project's compileSdkVersion is set to 37 or higher.

  • This version has been validated on iOS 27 devices.

Fixed

  • Fixed an Android crash (SIGSEGV) that occurred during long-running calls with heavy stream churn. The crash was caused by subscriber event callbacks reading stream data from already-freed native memory. Stream data is now read once at subscribe time into an immutable snapshot; all subsequent callbacks read from the snapshot only.

  • Fixed Android performance degradation during prolonged calls caused by unnecessary event processing. Audio level, audio network stats, and video network stats events are now only forwarded to JavaScript when a handler is attached, eliminating overhead when no listener is registered.

  • Fixed a JS listener lifecycle issue in OTSession where remounting a session accumulated duplicate global event listeners, causing multiplied events and unnecessary re-renders.

  • Fixed shared-state leaks on Android where streams, publishers, and subscribers were not correctly removed from internal maps on unsubscribe, unpublish, or an involuntary disconnect, causing the maps to grow unbounded over time.

  • Fixed an issue on Android where calling publish() before the publisher view had finished attaching could silently drop the publish request.

  • Fixed an issue on Android where calling getCapabilities() before the session connected could crash the app natively. This now rejects with an error instead.

  • Fixed an issue on Android where a denied BLUETOOTH_CONNECT permission blocked publishing entirely, even though the permission is only required for routing audio to a Bluetooth headset.

  • Fixed a black screen issue on Android when screen sharing (videoSource: 'screen') under the React Native new architecture.

  • Fixed an issue where the maxVideoBitrate property of the OTPublisher component was not applied correctly.

  • Fixed inconsistent parsing of subscriber and publisher stats payloads (audioNetworkStats, videoNetworkStats, rtcStatsReport) across platforms.

  • Fixed an issue on Android where the creationTime value for subscriber events was not formatted as ISO 8601, causing inconsistent timestamp formats between Android and iOS.


v2.33.3 — August 2026

Fixed

  • Fixed an issue where the subscriber view was not rendered on first connect. The addStream() method silently failed on the first session connection because the streams array was never initialized. The subscriber view only worked on reconnect. Now the array is lazily initialized before the first push.

  • Fixed missing setVideoTransformers and setAudioTransformers methods on the OTPublisher ref. After the New Architecture migration (v2.31+), calling these methods on the publisher ref threw an error because the JS component no longer bridged them. Both instance methods are now re-exposed on the OTPublisher ref.

  • Fixed a black screen when using videoSource: 'screen' on Android with Fabric. The screen capture now uses android.R.id.content instead of the immediate parent view.


v2.34.0 — August 2026

Added

  • This version updates the Vonage Video Android SDK and iOS SDK to version 2.34.1. For more information, see the Android SDK release notes and the iOS SDK release notes.

  • This version upgrades the React Native version from 0.81 to 0.86. The SDK now requires React Native 0.86 or later, React 19.2 or later, and Node.js 22.11 or later.

  • This version has been validated on Android 17 devices. However, the SDK does not yet compile against or target Android 17 due to React Native 0.86 limitations.

  • Re-exposed setVideoTransformers and setAudioTransformers methods on the OTPublisher component ref. These methods were previously unavailable after the migration to the React Native new architecture.

  • The subscribeToAudio and subscribeToVideo subscriber properties now default to true, eliminating the need to pass them explicitly.

  • Added the onVideoNetworkStats event to OTSubscriberView with updated TypeScript types.

Fixed

  • Fixed a crash on Android when calling forceMuteAll(). The behavior is now aligned between iOS and Android.

  • Fixed an issue where children of OTSubscriberView were not rendered correctly.

  • Fixed an issue where sessionId was read at constructor time instead of from context at render time, causing problems with dynamic mount/unmount scenarios.

  • Fixed an issue where the first streamCreated event was silently dropped because the streams array was not initialized.

  • Fixed a null pointer crash on Android when mSession was null in OpentokReactNativeModule.

  • Fixed an iOS crash in sessionDidConnect during rapid reconnection where session.connection could be nil.

  • Fixed an Android crash in refreshStreamCache during subscriber teardown where session.sessionId could return null.

  • Fixed iOS build errors with Xcode 26+ related to C++20 compilation issues with the fmt library.


v2.33.2 — June 2026

Fixed

  • Fixed subscriber video rendering issues introduced in version 2.31.x when using the React Native new architecture. Specifically:
    • Fixed subscribeToAudio and subscribeToVideo not defaulting to true when omitted, causing a blank/black subscriber view.
    • Fixed a sessionId concurrency issue that could prevent the video surface from attaching correctly.
    • Fixed redundant OTContext.Provider re-creation on each render that could cause intermittent video surface attachment failures.