devkult_
tools29converters34

416 Range Not Satisfiable

4xx client errorformerly “Requested Range Not Satisfiable”

The requested byte range lies outside the resource.

416 answers a Range request that can't be fulfilled — usually because it starts past the end of the file. The server should include Content-Range: bytes */<size> so the client learns the real length.

Class4xx Client Error
Retry?No — change the request first
Cacheable by defaultNo — only with explicit Cache-Control
Response bodyAllowed
Defined inRFC 9110 §15.5.17 — 416 Range Not Satisfiable
Example response
HTTP/1.1 416 Range Not Satisfiable
Content-Range: bytes */146515
Content-Type: application/json
Content-Length: 33

{"error":"Range Not Satisfiable"}

Common causes

  • Resuming a download of a file that has since shrunk or been replaced.
  • Off-by-one range arithmetic in a custom downloader.
  • Requesting a range of an empty file.

How to fix it

  1. Request the file again without a Range header.
  2. Send If-Range with the ETag, so a changed file restarts from scratch instead of failing.
  3. Read Content-Range: bytes */<size> from the 416 to learn the actual length.

Check what a URL returns

Print just the status line from the command line, or check a whole list of URLs at once, with their response headers, in the HTTP Status Checker.

curl -sI https://example.com/your-path | head -n 1

Frequently asked questions

Why does resuming my download fail with 416?

The partial file is already as long as the server's file or longer, usually because the file changed. Delete the partial download and start over.

Headers used with 416
Related status codes