HTTP Status Codes
HTTP 416 Range Not Satisfiable
Range Not Satisfiable — the server cannot fulfill the byte range specified in the request
416 is returned in response to a ranged request when the specified byte range does not overlap with the resource. The response includes a Content-Range header indicating the actual resource size. The standard also allows a server to refuse a request built from so many small, overlapping ranges that it amounts to a possible denial-of-service attempt. Clients cannot depend on 416, though: the Range header is optional for a server to honor, and many answer an unsatisfiable range with the full 200 response instead.
Visual summary
A quick reference view of how HTTP 416 works: A target bracket or pointer aiming at empty space past the end of a document.

What 416 Means
The shortest useful reading of this status code.
Range Not Satisfiable means the server cannot fulfill the byte range specified in the request.
This status falls into the 4xx class, indicating a client-side error outcome for the request.
Quick read
Range Not Satisfiable
the server cannot fulfill the byte range specified in the request
How to fix 416
General informational guidance, not professional advice. Commands can affect your system or data — back up first and proceed at your own risk. FixerCode is an independent reference, not affiliated with any vendor mentioned.
Read the real resource size
The 416 response carries a Content-Range header in the form bytes */total. Use it to learn the current length before re-requesting.
curl -sI -H 'Range: bytes=0-1' https://example.com/fileRequest a range within that size
Ask only for bytes that exist. A resumed download must start from an offset below the actual file length.
Clear a stale cached size
If the file changed on the server, the client or CDN may still hold the old length. Clear that cache so the next request reads the current size.
Serve ranges correctly if you own the server
Make sure the origin returns Accept-Ranges and an accurate Content-Length so clients compute valid ranges.
Technical Context
How this status behaves without turning the page into a repair guide.
Standard usage
HTTP range requests allow clients to request specific byte ranges of a resource, enabling resumable downloads and adaptive streaming. When the range does not intersect with the resource, the server returns 416 with a Content-Range: bytes */total header.
Technical nuance
The Content-Range response header indicates the actual resource length, which the client can use to correct its range assumptions before re-requesting.
Implementation detail
Byte ranges are inclusive offsets that start at zero. A range spec is satisfiable only when it points inside the representation: its first position has to fall before the end of the resource, or it has to be a suffix range asking for a non-zero number of bytes. A resume request that starts exactly at the end of the file therefore satisfies nothing and earns a 416.
Architecture
Servers that serve large static files usually advertise Accept-Ranges: bytes so clients know seeking and resuming will work. On a zero-length resource, nothing but a non-zero suffix request can be satisfied, which is one more way an apparently reasonable request can come back 416.
Related HTTP Codes
Nearby HTTP status codes help clarify how 416 differs inside the same response family.
416
Range Not Satisfiable
the server cannot fulfill the byte range specified in the request
400
Bad Request
the server cannot process the request because it is malformed
206
HTTP 206 Partial Content
the server is sending a requested range
413
Content Too Large
the request body is larger than the server allows
Common Causes
Range header value falls outside the actual size of the resource
A common condition that triggers a 416 response when the web server evaluates the transaction.
Client resuming a download with an incorrect byte offset after the resource changed
A common condition that triggers a 416 response when the web server evaluates the transaction.
Resource was truncated or replaced since the client last obtained its size
A common condition that triggers a 416 response when the web server evaluates the transaction.
Excessive numbers of small, overlapping ranges treated as a possible denial-of-service attempt
A common condition that triggers a 416 response when the web server evaluates the transaction.
Typical Scenarios
Video player requesting bytes beyond the end of a video file
Download manager resuming a file whose content has changed on the server
Partial-content client operating with a stale cached resource size
A resumable download client restarting at an offset that already equals the file's current size, leaving no bytes left to request
What To Know
A 416 error indicates a stale or incorrect byte range assumption on the client side, not a server problem. The server includes a Content-Range header in the response indicating the actual resource size.
Frequently Asked Questions
Common interpretation questions about HTTP 416.
The server includes a Content-Range header in the format 'bytes */total-size', indicating the actual resource length so the client can correct its range.
The client should read the Content-Range header in the 416 response to learn the actual total size of the resource, then either restart the download from the beginning or adjust the range request to fall within valid boundaries.
Yes. If a server generates a response dynamically and the client sends a Range header, the server may not know the final content length until generation is complete. If the generated content is smaller than the requested range, the server returns 416.
A resume client sends a range that starts at the offset it stopped, and on a complete download that offset equals the file length. A range whose first position is not smaller than the current length is unsatisfiable, so the server answers 416 with the real total in Content-Range — the signal that nothing is left to fetch.
Servers are free to ignore the Range header, and many implementations deliberately answer an unsatisfiable range with the complete representation in a 200 response, since clients are usually prepared to finish the task that way. A missing 416 does not mean the range was valid.
No. The resource exists at a known length — that length is what the Content-Range header reports. The problem is the requested window, not the file; a missing resource would return 404 instead.