What it means
The server refuses the request with the current protocol and requires the client to upgrade, for example to TLS or HTTP/2, as named in the Upgrade header.
Common causes
- Server requires a newer protocol version
- A WebSocket endpoint called with plain HTTP
How to fix it
As a client or visitor
Switch to the protocol in the Upgrade header, such as https, HTTP/2 or WebSocket.
As the site or API owner
Include Upgrade listing the required protocol.
Example response
HTTP/1.1
HTTP/1.1 426 Upgrade Required
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Upgrade: HTTP/2
Connection: Upgrade
Content-Length: 0 Specification
FAQ
› Why does a WebSocket server answer 426?
The request was plain HTTP without the WebSocket upgrade headers.
› Is 426 used to force HTTPS?
Rarely. Sites usually redirect with 301/308 to https and use HSTS.