Nginx Server Errors
Range Not Satisfiable
Reviewed for reference consistency: August 11, 2026
Range Not Satisfiable
What 416 Means
The 416 error on the Nginx Server Errors indicates range not satisfiable. This typically occurs due to requesting bytes beyond the file length.
The 416 error occurs when a client requests a specific portion of a file (using the Range header), but that portion technically falls outside the actual file dimensions.
Technical Background
HTTP Range requests are beautiful for streaming video and resuming downloads. Nginx supports this natively.
However, if the client sends a mathematically impossible range, Nginx responds with 416, letting the client know to rethink its math.
HTTP Range requests allow clients to request only a portion of a resource. Nginx processes these requests natively and returns 416 when the requested byte range falls outside the actual file boundaries. This is distinct from a 404 or 400: the file exists and the request is syntactically valid, but the mathematical range specified by the client cannot be satisfied by the file current size.
A common trigger is file replacement during active streaming: a media file is swapped on the server while a client has an open range request. The client cached knowledge of the file size becomes stale, and its next range request references a byte position that no longer exists in the new, smaller file. Nginx correctly responds with 416, prompting the client to restart the download.
Common Causes
- Requesting bytes beyond the file length
- Corrupted download manager seeking a bad offset
- Empty file requested with a byte slice
Typical Scenarios
- A video player tries to skip to byte 5000 of a video, but the video itself is only 3000 bytes long.
- A download accelerator tries to resume a file that was shrunk fully on the server.
- A download manager resumes a paused download, but the file on the server was replaced with a smaller version, making the cached byte offset invalid
- An API client sends a Range header with bytes=1000-2000 for a response body that the server generates dynamically and that turns out to be only 500 bytes long
What to Know
Clearing the browser or application cache forces a fresh request from the start of the file, resetting the byte range.
Frequently Asked Questions
Common questions about Nginx 416 error
The video player requested a part of the video file that doesn't exist anymore, usually because the file changed on the server.
Nginx returns the same 416 status code defined in the HTTP specification. The difference is context: Nginx generates this response based on its own file handling and range processing logic, and may also return 416 for range requests on empty files or when the range is mathematically impossible given the file size.
The client should discard its cached byte position and retry the request without a Range header, effectively requesting the full resource from the beginning. Clearing browser cache or application-level download state also resolves the stale offset problem.
Related Error Codes
Related Errors From Other Categories
Similar error codes documented across different platforms and systems