Skip to main content
HTTP/2xx (Success)

203 Non-Authoritative Information

The request succeeded, but the payload was modified by a transforming proxy from the origin's 200 OK response.

❓ Why does this happen?

A proxy or CDN rewrote headers or body (compression, image optimization, injected content).

✅ How to fix it

Verify proxy transformation rules. Add Cache-Control: no-transform if the payload must reach the client unmodified.

Return or handle 203 in your stack

// app/api/resource/route.ts
export function GET() {
  return Response.json(
    { error: "Non-Authoritative Information", status: 203 },
    {
      status: 203
    }
  );
}

Live 203 mock endpoint

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

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

Frequently Asked Questions

What does HTTP Status 203 mean?
The request succeeded, but the payload was modified by a transforming proxy from the origin's 200 OK response.
Why am I getting a 203 status code?
A proxy or CDN rewrote headers or body (compression, image optimization, injected content).
How do I fix a 203 Non-Authoritative Information error?
Verify proxy transformation rules. Add Cache-Control: no-transform if the payload must reach the client unmodified.
How can I test how my app handles a 203 response?
Send a request to https://castov.com/api/mock/203 — it returns a real 203 Non-Authoritative Information response with CORS enabled. Add ?delay=2000 to simulate a slow server.

Other 2xx status codes

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