NotReadableError: Could not start video source Browser Origin: On your device Last updated 15 Oct 2026

Console: NotReadableError: Could not start video source (camera in use by another app)

The camera or microphone exists but could not be opened — another application, tab or a driver problem holds it.

Exact message you may see NotReadableError: Could not start video sourceNotReadableError: Could not start audio sourceNotReadableError: Device in useFailed to allocate videosource
Seen on: Chrome Firefox JavaScript Windows

Meaning

Hardware access is usually exclusive. Zoom/Teams, another browser tab or a crashed process may still hold the device, or the operating system privacy policy and drivers block the stream. Close other users of the device, then retry.

Common causes

  • Another app or browser tab is using the camera/microphone
  • Driver or hardware fault
  • OS privacy settings preventing access
  • Previous stream never stopped (tracks not released) in your own code
  • Antivirus webcam protection

⚡ Quick fix

  1. Close other apps or tabs using the camera (video call software)
  2. Stop old tracks: stream.getTracks().forEach(t => t.stop()) before requesting again
  3. Update/reinstall the driver and reboot

Detailed fix by platform

JavaScript

  1. stream.getTracks().forEach(t => t.stop()); when leaving a call/page, so the device is released

Windows

  1. Settings → Privacy & security → Camera; close apps listed under "Recently used"; update the camera driver

macOS

  1. sudo killall VDCAssistant; sudo killall AppleCameraAssistant to reset the camera service, then retry

How to diagnose

  1. Holder — Which app/tab uses the device?
  2. Code — Are old tracks stopped?
  3. Driver — Works in the OS camera app?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: On your device. Errors that are often confused with or caused by this one (click to open):

autoplay blocked — NotAllowedError: play() failed because the user didn't interact with the document first. (JavaScript)autoplay blockedAw, Snap! — Chrome: Aw, Snap! Something went wrong while displaying this webpage. Error code: STATUS_ACCESS_VIOLATION / SIGILL / Out of Memory (Browser)Aw, Snap!captive portal — Browser: This network requires you to sign in — captive portal (hotel, airport, café Wi-Fi) blocking HTTPS sites (Browser)captive portalNotAllowedError: Permission denied — Console: NotAllowedError: Permission denied (getUserMedia — camera or microphone blocked) (Browser)NotAllowedError: Perm…NotFoundError: Requested device not found — Console: NotFoundError: Requested device not found (getUserMedia has no camera or microphone) (Browser)NotFoundError: Reques…The canvas has been tainted by cross-origin data — Console: SecurityError: Failed to execute 'toDataURL' / 'getImageData' on 'HTMLCanvasElement': Tainted canvases may not be exported (Browser)The canvas has been t…VIDEO_TDR_FAILURE — Blue screen: VIDEO_TDR_FAILURE (0x00000116) — nvlddmkm.sys / atikmpag.sys / igdkmd64.sys (Windows)VIDEO_TDR_FAILURENotReadab…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.