Hi,
Yes, its an error returned by getUserMedia when a device is missing, I'm not sure though if that error is returned when requesting audio+video and one of them is missing or if it's returned when no media device is detected at all.
What you could do in that case, is to make another request (in the rejected promise callback) for audio only and if that works, you know there are no cameras and continue with audio.
Alternatively you can use the enumerateDevices API and check the property "kind" returned for each device, it can be either "videoinput", "audioinput" or "audiooutput" (note that you need getUserMedia permissions to get the labels of the devices). Then you could make a getUserMedia request based on the devices present on the machine.
/Chris