We have integrated Zoom Video SDK into our application to enable video calling functionality on both Android and iOS platforms. The video call feature is working as expected on Android devices.
However, we are encountering an issue on iOS.
Problem:
The iOS application fails to display the local video to remote participants after camera permission is granted.
Steps to Reproduce (iOS):
1.The user taps the video call link within the iOS application.
2.iOS prompts the user for camera access permission.
3.The user grants permission by selecting “Allow.”
4.The video call connects successfully,
But remote participants are unable to see the iPhone user’s video. Video displayed based on “bVideoOn” : true/false
Hey @anjithiruveedhi238
Thanks for your feedback.
Could you share some problematic session IDs with us for troubleshooting purposes?
Thanks
Vic
Hi @vic.yang
The main issue we are encountering is that, occasionally, the remote participant’s video does not render when they join via an iPhone. In these instances, the bVideo value is shown as true, but the video is still not visible on the screen, and no errors are reported.
Problematic session IDs :
w5Z4crZARn2n1G5HBSWN2Q==
yH5kM+eaQjSTK0Njp8vp8Q==
Hi @anjithiruveedhi238
w5Z4crZARn2n1G5HBSWN2Q==
yH5kM+eaQjSTK0Njp8vp8Q==
After analyzing the logs, we found the issue occurred on version 1.12.14, which has a known video issue on Safari.
Could you please upgrade to version 1.12.17, the stable release in the 1.x branch?
Thanks
Vic
Hi @vic.yang,
Thank you for recommending the version upgrade. After updating to 1.12.17, the video rendering issue on iPhone appears to be resolved. However, during testing, we noticed a new issue: whenever we perform a camera swap, an additional user appears in the session after about a minute. In some cases, this extra user is automatically removed after a short period.
Here I’m providing the call details of one such call.
SessionId : eL26RAP+T9mbYTW32hPkQA==
Please refer the screenshots as attached for the user details(extra user & single user) :
Below I’m posting the code snippet of camera swap functionality.
const handleCameraSwap = React.useCallback(() => {
let stream = zoomVideo?.getMediaStream();
try {
let cameraList = stream?.getCameraList();
let activeCamera = stream?.getActiveCamera();
// setCameraList(JSON.stringify(cameraList));
const switchCameraDeviceId = cameraList?.filter((x: any) => x.deviceId !== activeCamera);
const activeCameraRes = cameraList?.filter((device: any) => device?.deviceId === activeCamera);
if (activeCameraRes[0]?.label?.toLowerCase().includes("front")) {
let backCamera = switchCameraDeviceId?.filter((device: any) => device?.label?.toLowerCase().includes("back"));
if (backCamera?.length > 0) {
switchCamera(backCamera[0]?.deviceId);
}
} else {
let frontCamera = switchCameraDeviceId?.filter((device: any) => device?.label?.toLowerCase().includes("front"));
if (frontCamera?.length > 0) {
switchCamera(frontCamera[0]?.deviceId);
}
}
} catch (error) {
console.log("handleCameraSwap camera : ");
}
}, [zoomVideo, switchCamera])
Hi @anjithiruveedhi238
eL26RAP+T9mbYTW32hPkQA==
This is not related to camera switching.
The additional user you’re seeing is likely a disconnected user (possibly due to a network interruption or closing the browser directly). This user won’t immediately disappear from the user list — we have a heartbeat detection mechanism, and it takes about 2 minutes without receiving a heartbeat before the server removes the user from the list.
However, to determine whether a user is in the process of disconnecting and reconnecting, we provide a property called isInFailover. From the screenshot you provided, user ID 16794624 is indeed in this failover state.
Thanks
Vic
Hi @vic.yang ,
As you said we added a check for the extra user before adding him to the session. But in another instance we observed that for both users isInFailover was false.
Below I’m providing the user details screenshots for your reference.
Please find the sessionId for the call : woFkE8S/TY+SOdBXIQUFAA==
Hi @anjithiruveedhi238
woFkE8S/TY+SOdBXIQUFAA==
After analyzing the logs, it appears that User 16794624 was a regular participant who joined the session at 2025-06-25 09:19:53 and left at 2025-06-25 09:22:32. The user’s browser and platform differed from other participants, using Chromium 134 on Windows.
Thanks
Vic