Operating System & Device-Specific Fixes
Fix iOS Safari Not Prompting for Camera Permission on Testing Sites
iOS Safari silently blocks camera requests on any page that isn't served over HTTPS — there's no permission prompt at all in that case, just a silent failure that can look identical to a permissions bug. Safari also permanently remembers a previous "Don't Allow" choice for a specific site until you manually reset it.
Why iPhone Safari Silently Blocks Camera Requests
Modern browsers, Safari very much included, require a secure HTTPS connection before they'll even offer a camera permission prompt at all — this is a deliberate security requirement, not a bug, since camera access over an insecure connection could be intercepted more easily. If a site is served over plain HTTP, Safari won't ask for camera permission; it will simply fail, often without a clear error message explaining why.
The second, more common cause is a previously dismissed prompt. Unlike some browsers that ask again after some time has passed, Safari on iOS remembers a "Don't Allow" decision indefinitely for that specific site, and won't prompt again automatically no matter how many times you reload the page or retry — the only way forward is a manual reset.
Steps to Re-Enable Camera Prompts on iOS Safari
Step 1: Confirm the site uses HTTPS.
Check for a padlock icon or "https://" at the start of the address in Safari's address bar.
Step 2: Tap the "aA" icon
At the left of the address bar while on the specific site.
Step 3: Tap "Website Settings."
Step 4: Find Camera in the list and change it from "Deny" to "Ask" or "Allow."
Step 5: Reload the page.
The prompt should now appear normally. ↑ Test with the widget above.
There's also a global fallback: Settings app → Safari → Camera, where you can set a default policy (Ask, Deny, or Allow) that applies to any site without its own specific override already saved.
Other iOS Browsers Have the Same Rule
Some third-party browsers on iOS — Chrome, Firefox, Edge — are required by Apple's platform rules to use the same underlying WebKit rendering engine as Safari, which means this exact same HTTPS requirement and per-site permission memory applies to them too, not just Safari itself. If you've switched to a different default browser on your iPhone and see the same silent blocking behavior, the fix is identical: check for HTTPS, then reset that specific site's permission through that browser's own equivalent of Website Settings.
A completely fresh reinstall of a site's permission is also available as a broader reset: Settings app → Safari → Advanced → Website Data, where you can remove a specific site's stored data entirely, including its remembered camera decision, if the per-site toggle approach doesn't seem to be taking effect for some reason.
If none of this resolves it and the site is one you trust, double-check there isn't a Screen Time content restriction active on the device (Settings → Screen Time → Content & Privacy Restrictions → Camera), since a managed restriction at that level can silently override Safari's own per-site settings entirely, producing the exact same symptom for a completely different underlying reason.
A Few More Things to Check on Mac
What are VDCAssistant and AppleCameraAssistant, and why do they matter for camera problems?
These are macOS’s own background processes for managing camera access — VDCAssistant coordinates the camera hardware itself, and AppleCameraAssistant works alongside it. If either one gets stuck, commonly after an app crashes without properly releasing the camera, every app can show the camera as unavailable until both are reset. Opening Terminal and running sudo killall VDCAssistant AppleCameraAssistant forces a clean restart of both, which resolves a large share of stuck-camera and black-screen issues that a simple app restart doesn’t fix.
What is UVCAssistant, and is it different from VDCAssistant?
On some macOS versions, Apple introduced UVCAssistant as an additional process specifically for USB Video Class (UVC) compliant external webcams — the standard most third-party USB cameras follow. If you’re using an external webcam rather than the built-in camera, and killing VDCAssistant alone doesn’t resolve a stuck camera, check Activity Monitor (View → All Processes) for UVCAssistant specifically and force-quit it the same way.
Does Apple Silicon (M1/M2/M3/M4) handle the camera differently than Intel Macs did?
Yes — Apple Silicon Macs route camera video through the chip’s own dedicated image signal processor rather than the path Intel Macs used, and the exact background processes involved can differ across specific Apple Silicon generations. If a fix written for an Intel Mac, or for a different chip generation, doesn’t fully apply on your machine, checking Activity Monitor’s actual running process list — rather than assuming a name from an older guide — is the most reliable way to identify what’s genuinely holding your camera.
Once this is fixed, testing your webcam online is a quick way to confirm the camera is fully working again, not just detected.