HTTPError.net

The fastest way to diagnose, understand, and fix any HTTP status code

203 Non-Authoritative Information

Fault: Neither
TL;DR

The response is a 200-style success, but a transforming proxy altered the headers or payload from what the origin sent.

The request was successful but the returned metadata may have been modified by a proxy.

What HTTP 203 Non-Authoritative Information Means

The request was successful but the returned metadata may have been modified by a proxy.

The response is a 200-style success, but a transforming proxy altered the headers or payload from what the origin sent.

Common Causes

How to Fix It (For Visitors)

How to Fix It (For Developers/Admins)

Returning a 203 Non-Authoritative Information (Code Examples)

If you build APIs or web apps, here is how to send an HTTP 203 response and how to test for it:

Node.js (Express)

app.get('/resource', (req, res) => {
  res.status(203).json({ error: 'Non-Authoritative Information' });
});

Python (Flask)

@app.route('/resource')
def resource():
    return jsonify(error='Non-Authoritative Information'), 203

PHP

<?php
http_response_code(203);
header('Content-Type: application/json');
echo json_encode(['error' => 'Non-Authoritative Information']);

Check the status with curl

curl -I https://example.com/resource
# Look for: HTTP/1.1 203 Non-Authoritative Information

Frequently Asked Questions

What does HTTP 203 Non-Authoritative Information mean?

The response is a 200-style success, but a transforming proxy altered the headers or payload from what the origin sent. In short: The request was successful but the returned metadata may have been modified by a proxy.

How should I handle an HTTP 203 Non-Authoritative Information response?

Use 203 only when an intermediary alters origin metadata. Return 200 from the origin itself. Document any proxy transformations.

Official Specification

The 203 Non-Authoritative Information status code is defined in RFC 9110 Section 15.3.4.

View the IANA HTTP Status Code Registry →