416 Range Not Satisfiable

The HTTP 416 status code means a range request is invalid.

For example, when streaming a video, you might want to receive it in chunks (because why waste the bandwidth if you only need a small fraction of the file). You can request a portion of the file by including the Range HTTP header:

Range: bytes=1337-1842

The above header asks the server to send the slice of the data starting from the 1337th byte up until the 1842nd byte.

If the file doesn’t have the requested range (for example, requesting the 100-200 kilobyte range from a 50-kilobyte file), the server will return the 416 Range Not Satisfiable status code.

If the Range header is syntactically invalid, the server will most likely ignore it and return 200 OK.

If a Range header is valid, but you still get this error, clear cache and delete cookies, and retry again.

Try it yourself

Try requesting a range that exceeds the Content-Length of a page:

curl --verbose -H 'Range: bytes=4242-5151' https://example.com

See also

206 Partial Content status code is returned when the range request succeeds, and the server sends you a chunk of the data.

Interested in no-nonsense technical guides?

No spyware, no promotional emails, or keyword-stuffed junk. I will only send you a single email when I've got something interesting to say. Unsubscribe anytime.

You can also subscribe to the Atom feed (it's like RSS, but better).