The target site, refusing your protocol version.

426 — Upgrade Required

The server will not talk over the protocol you used and names a better one in the Upgrade header. In practice it almost always means the site has dropped TLS 1.0/1.1 and your client still offers them.

A proxy does not fix this. Your protocol version travels with your client, not with your exit address.

Why it happens

An old TLS version, or an old HTTP version, offered by a client on an outdated runtime.

A WebSocket endpoint reached with a plain HTTP request.

A site requiring HTTP/2 for a specific endpoint.

How to fix it

  1. Update the client's TLS library; this is usually the runtime rather than your code.
  2. Read the Upgrade header — it names exactly what the server wants.

FAQ

What does 426 mean?›
The server will not talk over the protocol you used and names a better one in the Upgrade header. In practice it almost always means the site has dropped TLS 1.0/1.1 and your client still offers them. The target site, refusing your protocol version.
Why am I getting 426?›
An old TLS version, or an old HTTP version, offered by a client on an outdated runtime. A WebSocket endpoint reached with a plain HTTP request. A site requiring HTTP/2 for a specific endpoint.
How do I fix 426?›
Update the client's TLS library; this is usually the runtime rather than your code. Read the Upgrade header — it names exactly what the server wants.
Will a proxy fix 426?›
Your protocol version travels with your client, not with your exit address.

Other errors