NotAllowedError: play() failed because the user didn't interact with the document first.
The browser blocked media autoplay with sound until the user interacts with the page.
Seen on:
JavaScript
Meaning
Autoplay policies allow muted autoplay but require a user gesture for sound. video.play() returns a rejected promise.
Common causes
- Calling play() with sound on page load
- Audio started from a timer, not a click
⚡ Quick fix
- Start playback from a click/tap handler
- Autoplay muted (muted + playsinline) and offer an unmute button
- Catch the play() promise rejection
Detailed fix by platform
JavaScript
- javascript
video.muted = true; video.play().catch(() => showPlayButton());
How to diagnose
- Trigger — Was play() called from a user gesture?
- Sound — Muted?
🧠 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.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026