StreamTest

HLS encryption key has no URI

A segment declares an encryption method but no key location, so it cannot be decrypted.

What it means

An EXT-X-KEY tag names a method other than NONE but omits the URI attribute that says where to fetch the key.

Why it matters

The media is unplayable. The player knows it needs to decrypt and has no way to obtain the key, so it fails at the first encrypted segment.

How to fix it

  1. Add URI="..." to the EXT-X-KEY tag, pointing at your key server or key file.
  2. Check the key server is reachable from the viewer’s network, not just from your own.
  3. Make sure the key endpoint sends CORS headers if the player is a browser.

Check your own stream

The free HLS analyzer runs this check on every analysis and links each finding straight back here.

Open the HLS analyzer →

Frequently asked questions

What does "HLS encryption key has no URI" mean?
An EXT-X-KEY tag names a method other than NONE but omits the URI attribute that says where to fetch the key.
Why does it matter?
The media is unplayable. The player knows it needs to decrypt and has no way to obtain the key, so it fails at the first encrypted segment.
How do I fix it?
1. Add URI="..." to the EXT-X-KEY tag, pointing at your key server or key file. 2. Check the key server is reachable from the viewer’s network, not just from your own. 3. Make sure the key endpoint sends CORS headers if the player is a browser.
How do I check an HLS playlist for this automatically?
Paste the master or media playlist URL into the free HLS analyzer. It runs this check on every analysis alongside the ladder, timing and live-edge audits, and links each finding back to the page that explains it.
What is the first thing to try?
Add URI="..." to the EXT-X-KEY tag, pointing at your key server or key file.

Related HLS checks