HTTP 426 — Upgrade Required
HTTP 426
Upgrade Required
The server refuses to answer over this protocol and names one you must switch to.
What 426 actually means
The request was understandable but the server will only serve it over a different protocol — typically a newer TLS version, or HTTP/2. The response must include an `Upgrade` header naming what it wants. In practice you meet this when an old client with outdated TLS support hits a server that has dropped TLS 1.0 and 1.1, or when an API requires a version of HTTP the client is not speaking.
Common causes
- A client using a TLS version the server no longer accepts
- A server requiring HTTP/2 for a particular endpoint
- A WebSocket endpoint reached with a plain HTTP request
- An outdated HTTP library that cannot negotiate the required protocol
If you're just trying to view the page
- Update your browser — old versions without TLS 1.2 support hit this on a growing number of sites
- Update the operating system, since TLS support often comes from the OS rather than the browser
- On very old devices there may be no fix beyond using a different, newer device
If it's your site
- Send the `Upgrade` header naming the required protocol; without it the client cannot comply
- Check your minimum TLS version setting before assuming an application bug
- For WebSocket endpoints, returning 426 to a plain GET is correct and useful
Reference
- Status code
- 426
- Reason phrase
- Upgrade Required
- Category
- 4xx — Client Error
- Defined in
- RFC 9110 §15.5.22
Common questions
- What does HTTP 426 mean?
- The server refuses to answer over this protocol and names one you must switch to. The request was understandable but the server will only serve it over a different protocol — typically a newer TLS version, or HTTP/2. The response must include an `Upgrade` header naming what it wants.
- How do I fix a 426 error?
- Update your browser — old versions without TLS 1.2 support hit this on a growing number of sites
- Is 426 a client error or a server error?
- 426 is in the 4xx range, which means client error. The request itself was the problem, so retrying it unchanged will usually return the same code.
Related pages
- 404 Not Found The server is reachable and working, but there is nothing at the address you ask
- 403 Forbidden The server understood the request and is refusing to allow it, and logging in wi
- 401 Unauthorized You need to authenticate, and either you did not or your credentials were reject
- 429 Too Many Requests You have sent more requests than the service allows in a given period.
- 400 Bad Request The server could not understand the request because something about it is malfor
- 413 Content Too Large The request body is bigger than the server is willing to accept.
- 422 Unprocessable Content The request is well-formed and understood, but the data in it fails the rules.
- 405 Method Not Allowed The URL exists, but it does not accept the HTTP method you used.
- 409 Conflict The request cannot be completed because it clashes with the current state of the
- 415 Unsupported Media Type The server will not accept the format of the body you sent.
- 408 Request Timeout The server gave up waiting for the client to finish sending its request.
- 410 Gone The resource was deliberately removed and is not coming back, and there is no fo