← Back to status codes
HTTP Status Code
416 Range Not Satisfiable
Client ErrorThe server cannot fulfill the requested range because it falls outside the bounds of the resource.
HTTP status code reference, response example, common causes, fixes, and related status codes.
What does HTTP 416 Range Not Satisfiable mean?
HTTP 416 Range Not Satisfiable is a status code sent by a server to indicate the result of an HTTP request.
Status codes help browsers, APIs, apps, and backend systems understand whether a request succeeded, failed, was redirected, or needs additional action.
In practice, HTTP 416 Range Not Satisfiable usually appears when a server responds under specific request, validation, permission, or infrastructure conditions.
Response example
HTTP/1.1 416 Range Not Satisfiable Content-Range: bytes */4096
HTTP example
HTTP/1.1 416 Range Not Satisfiable
Relevant headers
Content-Range
Content-Range: bytes */4096
Range
Range: bytes=0-1023
Common causes
- Requested byte range starts beyond the end of the file
- Invalid or malformed Range header
- File was modified or truncated between requests
How to fix it
- Check that the Range header values are within the actual resource size
- Fetch the resource size first using a HEAD request before requesting ranges
- Reset the download if the file may have changed
Common mistakes
- Assuming the status code alone explains the full backend issue
- Ignoring related response headers that add important context
- Treating temporary errors as permanent failures
- Retrying too aggressively without checking the cause
- Debugging the frontend only when the problem is server-side
How browsers and APIs use it
Browsers, APIs, and backend services use HTTP status codes to understand the outcome of a request. Depending on the status code, an application may render content, retry a request, redirect the user, show an error, or trigger a different flow in the client or server.
Practical developer insight
416 is the expected response when a Range request goes out of bounds. The server includes a Content-Range header with the actual resource size using the format bytes */total, which clients can use to correct the range and retry.
Client-side example
if (response.status === 416) {
console.error("Range out of bounds — reset download or check file size.");
}