416 Range Not Satisfiable

None of the ranges in the Range header overlap the current size of the resource.

Status

HTTP/1.1 416 Range Not Satisfiable

Details

416 answers a range request that asks for bytes that do not exist, for example bytes 5000-6000 of a 2KB file. The response should carry Content-Range with the total size in the form bytes */length so the client can correct itself.

In resumable downloads it usually means the remote file changed or shrank since the transfer started. Sending If-Range with the original ETag avoids the problem: the server then returns the whole file instead of a mismatched slice.

Headers

Common causes

How to fix it

As the client

As the server

Examples

GET /files/report.pdf HTTP/1.1
Host: files.example.com
Range: bytes=900000-950000

HTTP/1.1 416 Range Not Satisfiable
Content-Range: bytes */24576

Specifications

RFC 9110 §15.5.17

See also