Console: [Violation] Permissions policy violation: camera is not allowed in this document (Feature-Policy)
A browser feature (camera, microphone, geolocation, fullscreen, payment…) was blocked by a Permissions-Policy header or an iframe that lacks the allow attribute.
Permissions policy violation[Violation] Permissions policy violationis not allowed in this documentFeature policy violationPermissions-Policy header Meaning
Servers can disable features for a whole page; embedding pages must grant them to iframes explicitly. The message names the feature. Fix by adding the feature to the allowed list in the header and, for iframes, to the allow attribute.
Common causes
Permissions-Policy: camera=()(orgeolocation=()) blocks the feature for the whole page- Cross-origin iframe without
allow="camera; microphone; fullscreen" - Parent page's policy denies the origin of the iframe
- Old
Feature-Policyheader still set - Sandboxed iframe
⚡ Quick fix
- Allow the feature for your origin in the header, e.g.
camera=(self) - Add
allow="camera; microphone"to the iframe element - Remove conflicting old
Feature-Policyheaders
Detailed fix by platform
Nginx
add_header Permissions-Policy "camera=(self), microphone=(self), geolocation=(self)" always;
Apache
Header always set Permissions-Policy "camera=(self), microphone=(self)"
JavaScript
<iframe src="https://meet.example.com" allow="camera; microphone; fullscreen"></iframe>
How to diagnose
- Feature — Which feature does the message name?
- Header — Response header on the page and its parents?
- Iframe — allow attribute present?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- Aw, Snap! Chrome: Aw, Snap! Something went wrong while displaying this webpage. Error code: STATUS_ACCESS_VIOLATION / SIGILL / Out of Memory
- blocked a frame SecurityError: Blocked a frame with origin "x" from accessing a cross-origin frame.
- Failed to execute postMessage Console: Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://a.com') does not match the recipient window's origin ('https://b.com')
Most viewed in Browser
Other ways to find it
Where this error sits
Origin: On your device. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 15 Oct 2026