Video_camera_is_taken issue on Android tablets (React/WebRTC application)

Format Your New Topic as Follows:

Video SDK Type and Version
npm > @zoom/videosdk: 2.2.5

Description
I am a developer building an online video class service using React.
The service was originally designed for PC and Mac users, but many users connect from mobile devices.
While the application is now mostly stable on PC and Mac, and relatively stable on mobile, some users still report instability.

On some mobile devices (mostly Android tablets), users sometimes encounter the error video_camera_is_taken.
When this occurs, the user cannot see the video feed and screen sharing fails.
Refreshing the page does not resolve the issue.
From customer feedback, the affected device was an Android tablet dedicated to learning, with sufficient free storage and system resources. The user was running Chrome and no other applications at the same time.
I suspect this might be related to how users exit the meeting: although there is a “Leave meeting” button, some users exit by pressing other navigation buttons. This might prevent resources (camera/microphone streams) from being properly released.

Error?
Error message: video_camera_is_taken

Troubleshooting Routes
Asked the user to refresh the page → issue persisted.

  1. Confirmed device: Android tablet, sufficient storage and resources available.
  2. Browser: Chrome (latest version at the time).
  3. No other apps running in the background.
  4. No conflicts with other video applications.

How To Reproduce
We have not been able to reproduce this issue on our own test devices

Question
Could this issue be caused by media resources (camera/microphone) not being properly released when users exit incorrectly?

We would like to gather insights on what situations could potentially cause the video_camera_is_taken error in a WebRTC/React environment.
Are there specific conditions, resource conflicts, or cleanup-related issues that we should check?
Any advice on possible areas to investigate (e.g., device-level limitations, browser behaviors, media resource handling, user navigation patterns) would be very helpful.

Hey @masanggil1986

Thanks for your feedback.

Could you share some problematic session IDs with us for troubleshooting purposes?

Thanks
Vic

1 Like

Dl5HDu8SQbSYH0jenuKESA==
m7zLZllsSqe6VZQutmc1Jw==

Thank you for your assistance

Hi @masanggil1986

Dl5HDu8SQbSYH0jenuKESA==
m7zLZllsSqe6VZQutmc1Jw==

After analyzing the logs, we found that the original error indicated a NotReadableError for the camera device.

Possible reasons include:

  1. The camera is being used by another application.
  2. An issue with the camera driver.

The case you mentioned, where the session did not exit properly, could also be a reason, as the camera might still be occupied.

Thanks
Vic

@vic.yang found the root cause of the issue.

Early in development, I used the browser’s native navigator API to check for video permissions as a precaution.

However, this turned out to be problematic.
When permissions are granted or checked using the native navigator, Zoom Video SDK attempts to create a separate video session, which leads to conflicts.
On mobile devices, this sometimes resulted in the video_camera_is_taken error.

After removing all usage of the native navigator and relying solely on the APIs provided by the Zoom Video SDK, the issue was resolved.

1 Like

This topic was automatically closed 25 hours after the last reply. New replies are no longer allowed.