426 Upgrade Required

The server refuses the request on the current protocol and names the protocol the client must switch to.

Status

HTTP/1.1 426 Upgrade Required

Details

426 is a refusal with instructions. The server will not serve this resource over the protocol in use, and the Upgrade header names what it wants instead. The classic case is a WebSocket endpoint answering a plain GET, telling the client to upgrade rather than poll.

It can also be used to force a newer version of a protocol, for example refusing an obsolete TLS version at the application layer.

Headers

Common causes

How to fix it

As the client

As the server

Examples

GET /socket HTTP/1.1
Host: realtime.example.com

HTTP/1.1 426 Upgrade Required
Upgrade: websocket
Connection: Upgrade

Specifications

RFC 9110 §15.5.22

See also