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
- 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.