426 Upgrade Required
The server refuses the request on the current protocol and names a required one in the Upgrade header (e.g. a newer TLS version).
The client must switch to a different protocol to continue.
What HTTP 426 Upgrade Required Means
The client must switch to a different protocol to continue.
The server refuses the request on the current protocol and names a required one in the Upgrade header (e.g. a newer TLS version).
Common Causes
- Server requires a newer protocol or TLS version
- Plain HTTP used where an upgrade is mandatory
- Outdated client library
How to Fix It (For Visitors)
- Update your browser or app
- Ensure you are using HTTPS
How to Fix It (For Developers/Admins)
- Send Upgrade and Connection headers
- Adopt the required protocol/TLS version
- Update the HTTP client
Returning a 426 Upgrade Required (Code Examples)
If you build APIs or web apps, here is how to send an HTTP 426 response and how to test for it:
Node.js (Express)
app.get('/resource', (req, res) => {
res.status(426).json({ error: 'Upgrade Required' });
});
Python (Flask)
@app.route('/resource')
def resource():
return jsonify(error='Upgrade Required'), 426
PHP
<?php
http_response_code(426);
header('Content-Type: application/json');
echo json_encode(['error' => 'Upgrade Required']);
Check the status with curl
curl -I https://example.com/resource
# Look for: HTTP/1.1 426 Upgrade Required
Frequently Asked Questions
What does HTTP 426 Upgrade Required mean?
The server refuses the request on the current protocol and names a required one in the Upgrade header (e.g. a newer TLS version). In short: The client must switch to a different protocol to continue.
Is 426 Upgrade Required a client or server error?
426 is a 4xx client-error code, so the request itself needs to change. The server is running normally and is rejecting the request as it was sent by the browser, app, or API client.
How do I fix a 426 Upgrade Required error?
Send Upgrade and Connection headers. Adopt the required protocol/TLS version. Update the HTTP client.
Official Specification
The 426 Upgrade Required status code is defined in RFC 9110 Section 15.5.22.