We have created a customized openvidu-components-angular application that worked well with the 2.x version. Recently we upgraded to OpenVidu 3.5, and also updated our custom app to this version. The new version is very nice, but we are now running into a problem that occurs when a user has no camera or when the microphone is disabled. In these cases, the join fails during device initialization with errors such as “NotFoundError: Requested device not found” and “INPUT_VIDEO_DEVICE_NOT_FOUND,” and the session is never established.
At first we thought this was caused by stale saved devices, so we implemented cleanup of stale device IDs from localStorage and sessionStorage, and verified that the issue is not caused by invalid stored devices. The behavior still persists even when there are genuinely no devices available or when the microphone is disabled at the OS or browser level.
After searching the support site, this appears to be a fairly common issue based on multiple posts involving empty deviceId values, NotFoundError, and cases where users have no camera, but we are still unclear on the correct solution at the Components level.
What we are trying to understand is the proper supported approach in openvidu-components-angular 3.5 to prevent device initialization failures from aborting the join process and to allow users to connect without publishing local media when devices are missing. More specifically, we would like to know how to enable audio-only participation when only a microphone is available, and how to allow subscriber-only participation when no devices are available at all. We are not using openvidu-browser directly, only Components, and we are looking for the correct control point in Components, whether through configuration, a hook, or an override, to achieve this behavior with minimal changes.