ARTICLE AD BOX
Describe the bug
Remote users' video rendering is intermittent on iOS devices when using @zoom/react-native-videosdk. The video feed from remote participants randomly works - sometimes it displays correctly, sometimes it fails to render at all. This issue does not occur on Android devices where remote video renders consistently.
To Reproduce
Steps to reproduce the behavior:
Initialize Zoom Video SDK session on an iOS device
Join a Zoom session using zoom.joinSession()
Have a remote user join the same session (from web or mobile)
Render remote user's video using ZoomView component with their userId
Observe that remote user's video feed intermittently fails to render
Expected behavior
The ZoomView component should consistently render remote participants' video streams on iOS, similar to the reliable behavior on Android. Once a remote user joins and their video is enabled, their video feed should display in the ZoomViewcomponent.
Screenshots
https://github.com/user-attachments/assets/dd8171b5-d8ed-4dda-8544-a93d22c83527
https://github.com/user-attachments/assets/1e87d96b-6847-4f1b-ac2c-9230d053c995
Environment version of: (please complete the following information):
React Native: 0.81.5
Expo: ^54.0.31
Zoom Video SDK: @zoom/react-native-videosdk@^2.4.0
Node: (your version)
Cocoapods: (your version)
Target Platform (please complete the following information):
Device: iPhone
OS: iOS
Working Platform: Android (all versions tested work correctly)
Additional context
Code Implementation:
<ZoomView style={styles.zoomView} userId={user.userId} fullScreen={false} videoAspect={VideoAspect.PanAndScan} />Session Configuration:
await zoom.joinSession({ sessionName: sessionName, token: token, userName: userName, audioOptions: { connect: true, mute: false, autoAdjustSpeakerVolume: false, }, videoOptions: { localVideoOn: Platform.OS === 'android' ? false : true, }, sessionIdleTimeoutMins: 10, });Observations:
Remote user joins are detected correctly via EventType.onUserJoin
User list updates properly with remote users
Remote video rendering is intermittent - works sometimes, fails other times
Audio from remote users works reliably
Android devices render remote video consistently
Issue occurs when remote users join from web or other mobile clients
When remote video does work initially: If the remote user (web client) turns off their camera, the iOS device's screen freezes on the last video frame instead of showing a placeholder or blank screen
The frozen frame persists even though EventType.onUserVideoStatusChanged is triggered
Additional Issue - Video Freeze on Camera Off:
When the remote user's video is successfully rendering and they turn off their camera:
Expected: ZoomView should clear the video or show a placeholder
Actual on iOS: The screen freezes on the last video frame
Actual on Android: Works correctly - video clears or shows placeholder
The EventType.onUserVideoStatusChanged event fires correctly, but the ZoomView component on iOS doesn't update to reflect the video status change
The intermittent rendering and frame freeze issues suggest potential race conditions or platform-specific video lifecycle management problems in the iOS implementation of the Zoom Video SDK.
