- Home
- HTTP Status Codes
- 505 HTTP Version Not Supported
Status Code
505 HTTP Version Not Supported
Learn what 505 HTTP Version Not Supported means when servers reject protocol versions. Understand HTTP/1.1, HTTP/2 compatibility and version negotiation.
TL;DR:
505 HTTP Version Not Supportedmeans the server rejected the request because the HTTP version in use was not acceptable.
What 505 Usually Means In Practice
The name sounds simple, but the real message is: the client and server did not agree on a usable HTTP protocol version for this request.
That can happen because:
- the client sent an invalid or unsupported request version
- a proxy rewrote or mangled the request line
- a custom client forced a version the server does not accept
- older infrastructure is sitting in the middle of a newer stack
Why Most Teams Rarely See It
In normal browser traffic, version negotiation usually happens automatically:
- HTTP/2 is typically negotiated through ALPN during TLS
- HTTP/3 is discovered and adopted through mechanisms like
Alt-Svc - fallback to HTTP/1.1 happens quietly if needed
That is why 505 is uncommon. Most clients never need to guess.
The Kind Of Cases That Produce It
You are more likely to see 505 when:
- building or testing a raw HTTP client
- running unusual reverse-proxy chains
- dealing with very old origin software
- mixing protocols or ports incorrectly
If a standard browser is hitting a normal site and you see 505, that usually points to a broken intermediary or custom infrastructure.
505 vs 426
These status codes are related but not interchangeable:
426 Upgrade Required: the server wants the client to reconnect using a required upgrade path505 HTTP Version Not Supported: the version in the current request is not supported for this exchange
So 426 is a conditional “try again differently,” while 505 is a harder rejection of the version in use.
How To Debug It
The fastest path is to inspect the actual request that reached the server:
GET /resource HTTP/1.1
or whatever version line appeared on the wire.
Then check:
- what version the client meant to send
- what version the proxy forwarded
- what versions the origin actually supports
- whether TLS or ALPN negotiation was bypassed or broken
Practical Fix Mindset
Do not start by hard-coding a new version string. Start by understanding how the request got to the server in the first place. With 505, the bug is often in the path between client and origin rather than in the app logic itself.
Related Status Codes
Frequently Asked Questions
What does 505 HTTP Version Not Supported mean?
It means the server refuses to handle the request because the HTTP version used by the client is not supported for that exchange.
When does 505 occur?
It is rare, but can appear with custom clients, broken proxies, invalid request lines, or infrastructure that expects a different HTTP version than the one received.
How do I fix a 505 error?
Check which HTTP version the client actually sent, then verify what the server and any intermediaries support and negotiate.
Is 505 common?
No. Modern browsers and servers usually negotiate compatible versions automatically, so 505 mostly shows up in edge cases or misconfigurations.