Permission first
If the page never received a grant, there is no preview to paint. Restore camera access in site settings. On iOS Safari, a previous deny is sticky until you visit Settings → Safari → Camera.
Physical shutter and kill switch
ThinkPad sliders, Framework shutters, and magnetic covers produce a legal, open track of a black door. Open the shutter. Hardware kill switches on some laptops disable the USB device entirely and show up as “no device.”
Someone else has the camera
Windows often allows only one client. Zoom leftover processes are famous for this. End the other call software, then hit Request camera again. If the LED on the bezel is already lit before you grant, another app is first in line.
Driver and resolution
Hotplug asks for an ideal 1280×720. Drivers may return something else, including a track that never fires loadeddata. If resolution stays on em-dash, the video element never got dimensions. Replug USB cameras. On macOS, kill VDCAssistant only if you know what that means — it resets the camera stack.
Virtual cameras
OBS virtual cam, Snap, and similar filters can sit in front of the real sensor. If the virtual device is stale, you get last frame or black. Disable virtual cameras in the OS list and retry.
Mirror is not the bug
Mirror only flips the preview with CSS. It cannot turn a black track green. Leave it off until you have a picture.
When you leave the Hotplug webcam page, tracks are stopped. If the LED remains, look for another tab.