HTTPfy

416 Range Not Satisfiable

The byte range requested in the Range header cannot be satisfied.

416 at a glance

Code
416
Name
Range Not Satisfiable
Class
4xx Client error
Status
IANA-registered standard code
Defined in
RFC 9110, Section 15.5.17
Cacheable by default
No by default. Caches store it only when the response carries explicit freshness (Cache-Control max-age, s-maxage or Expires).

What 416 means

416 Range Not Satisfiable means none of the requested ranges overlap the current resource, typically because the range starts past the end of the file. The server should send Content-Range: bytes */<length> so the client learns the real size.

What typically causes a 416

  • Resuming a download (curl -C -, wget -c) when the local file is already complete or the remote file shrank.
  • Video players requesting a range after the file was replaced with a shorter one.
  • Buggy range calculations (off-by-one on the last byte).

Fix it on the server

  • Include Content-Range: bytes */length.

Fix it as a client or visitor

  • Delete the partial file and download again, or compare sizes first.
  • Send If-Range with the ETag so changed files are sent in full instead of failing.

Headers that go with 416

HeaderRole
Content-Rangebytes */total with the current length.
RangeRequest header that failed.

Example response

HTTP/1.1 416 Range Not Satisfiable
Content-Range: bytes */52428800
Content-Length: 0

Opens the HTTP headers tool with your URL filled in; it shows the status line and headers of every redirect hop.