Skip to main content
HTTP/4xx (Client Error)

416 Range Not Satisfiable

The Range header requested a portion of the file that lies outside the size of the target resource.

❓ Why does this happen?

Resumed download after the file changed or shrank, or a video player requested bytes beyond EOF.

✅ How to fix it

Drop the Range header and restart the download, or validate byte offsets against Content-Length.

Return or handle 416 in your stack

// app/api/resource/route.ts
export function GET() {
  return Response.json(
    { error: "Range Not Satisfiable", status: 416 },
    {
      status: 416
    }
  );
}

Live 416 mock endpoint

Point your app, tests, or retry logic at this free public URL to reproduce a real 416 response (CORS enabled, optional ?delay=ms up to 5000).

https://castov.com/api/mock/416

Frequently Asked Questions

What does HTTP Status 416 mean?
The Range header requested a portion of the file that lies outside the size of the target resource.
Why am I getting a 416 status code?
Resumed download after the file changed or shrank, or a video player requested bytes beyond EOF.
How do I fix a 416 Range Not Satisfiable error?
Drop the Range header and restart the download, or validate byte offsets against Content-Length.
How can I test how my app handles a 416 response?
Send a request to https://castov.com/api/mock/416 — it returns a real 416 Range Not Satisfiable response with CORS enabled. Add ?delay=2000 to simulate a slow server.

Other 4xx status codes

Browse the full HTTP status codes directory or troubleshoot terminal errors in the Error Fix Encyclopedia.