At One Place

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

  1. Update your browser — old versions without TLS 1.2 support hit this on a growing number of sites
  2. Update the operating system, since TLS support often comes from the OS rather than the browser
  3. On very old devices there may be no fix beyond using a different, newer device

If it's your site

  1. Send the `Upgrade` header naming the required protocol; without it the client cannot comply
  2. Check your minimum TLS version setting before assuming an application bug
  3. 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

Sources

  1. Hypertext Transfer Protocol (HTTP) Status Code Registry — IANA
  2. RFC 9110: HTTP Semantics — IETF

How these figures are compiled and checked