WebRTC Metrics

A comprehensive overview of WebRTC statistics, derived indicators, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats

Back
peripheralbug

Device not found

The requested media device (microphone or camera) is not available on the system.

Description

getUserMedia rejects with a NotFoundError when no media input matches the requested constraints. This typically happens when:

  • The device (microphone or camera) is not connected at all.
  • The device is disconnected between the moment it was enumerated and the moment capture is requested.
  • The device is disabled at the operating-system level (for example camera privacy switch).
  • The constraints pin a specific deviceId (with exact) that no longer matches any available device.
  • A kind was requested but the corresponding category is empty (for example audio: true on a machine with no audio input).

When this error is raised, the user cannot send the missing media to remote participants.

What do we do here?

We look at every getUserMedia call. We mark an observation if the response returned contains the error NotFoundError.

Notes

A NotFoundError is different from NotAllowedError (permission denied) or OverconstrainedError (constraints cannot be satisfied by the available devices). Only NotFoundError responses are taken into account by this observation.

Our suggestions

  • Check that the requested device is physically connected and enabled at the OS level.
  • When you target a specific deviceId, gracefully fall back to the default device if the pinned id is no longer available.
  • Surface a user-friendly error in the UI so the user understands what is missing.