416 Range Not Satisfiable

The Range header asks for a part of the resource that does not exist.

Last updated . How this page is checked.

Status code416
Status textRange Not Satisfiable
Category4xx Client Error
Response has bodyUsually
SpecificationRFC 9110

What does 416 Range Not Satisfiable mean?

The Range header asks for a part of the resource that does not exist. It belongs to the 4xx Client Error class, which means the request contains bad syntax or cannot be fulfilled. Something about the request needs to change.

When do APIs return 416?

A download is resumed from a byte offset at or beyond the end of the file — most often because the file is already complete, or because it changed on the server and is now shorter. The response includes Content-Range: bytes */N, where N is the real size.

How to fix a 416 Range Not Satisfiable

Read the size from the Content-Range header and compare it with what you already have. If the local file is the same size, the download was finished. If the remote file changed, discard the partial copy and start again without a Range header. Guard resumed downloads with If-Range so a changed file is sent whole instead of failing.

Reproduce a 416 response

The fastest way to understand a status code is to trigger one and read the full response. Open the API tester and send a request to https://httpbin.org/status/416 — you will see the 416 status along with every response header the server sent. Comparing those headers against a working request is often what reveals the cause.

When you are debugging a real endpoint, check the response headers as carefully as the body, and confirm you are using the right HTTP method for the operation.

Related 4xx status codes

See also

  • 206 Partial Content — The server is delivering only part of the resource, as requested by a Range header.

References