HTTP Status Codes
HTTP 505 HTTP Version Not Supported
HTTP Version Not Supported
A 505 response indicates the server received an HTTP request whose protocol version it does not support or refuses to handle. The version appears in the request line of HTTP/1.x messages, and a mismatch triggers this server-side error. Unlike most 5xx codes, 505 is deterministic — the same request from the same client produces the same response until the server configuration or client behavior changes.
Visual summary
A quick reference view of how HTTP 505 works: A mismatch in communication standards between client and server.

What 505 Means
The shortest useful reading of this status code.
HTTP Version Not Supported.
This status falls into the 5xx class, indicating a server-side error outcome for the request.
Quick read
HTTP Version Not Supported
A 505 response indicates the server received an HTTP request whose protocol version it does not support or refuses to handle. The version appears in the request line of HTTP/1.x messages, and a mismatch triggers this server-side error. Unlike most 5xx codes, 505 is deterministic — the same request from the same client produces the same response until the server configuration or client behavior changes.
Technical Context
How this status behaves without turning the page into a repair guide.
Standard usage
Modern protocol negotiation largely bypasses the HTTP request line. HTTP/2 and HTTP/3 establish their protocol version during the TLS handshake via ALPN (Application-Layer Protocol Negotiation), before any HTTP message is sent. This means a 505 response is relatively rare in production — most version mismatches surface as TLS negotiation failures rather than HTTP-level errors.
Technical nuance
When 505 does appear, it typically involves HTTP/1.x traffic where the version token is explicitly parsed from the request line. A server configured to reject HTTP/1.0 will return 505 rather than silently downgrading. This behavior lets administrators enforce minimum protocol standards across their infrastructure without ambiguity.
Implementation detail
The distinction between 505 and related codes matters for diagnosis. A 501 Not Implemented means the server does not recognize the request method, while a 426 Upgrade Required asks the client to switch protocols but indicates the server understood the request. A 505 specifically targets the protocol version itself, independent of method or payload.
Architecture
The server response ideally includes an explanation of which protocol versions it does support, sometimes accompanied by an Upgrade header suggesting a compatible alternative. However, not all servers populate this detail, leaving the client to infer the supported range from documentation or trial requests.
Related HTTP Codes
Nearby HTTP status codes help clarify how 505 differs inside the same response family.
505
HTTP Version Not Supported
A 505 response indicates the server received an HTTP request whose protocol version it does not support or refuses to handle. The version appears in the request line of HTTP/1.x messages, and a mismatch triggers this server-side error. Unlike most 5xx codes, 505 is deterministic — the same request from the same client produces the same response until the server configuration or client behavior changes.
500
Internal Server Error
the server hit an unexpected condition while handling the request
501
Not Implemented
the server does not support the HTTP method used in the request
400
Bad Request
the server cannot process the request because it is malformed
Common Causes
Client requesting an outdated HTTP/0.9 or HTTP/1.0 protocol the server no longer accepts
A common condition that triggers a 505 response when the web server evaluates the transaction.
Malformed request line where the HTTP version token is corrupted or missing
A common condition that triggers a 505 response when the web server evaluates the transaction.
Security scanner or fuzzing tool sending fabricated protocol version strings
A common condition that triggers a 505 response when the web server evaluates the transaction.
Reverse proxy forwarding a version identifier the upstream server does not recognize
A common condition that triggers a 505 response when the web server evaluates the transaction.
Typical Scenarios
An IoT device with an embedded HTTP/1.0 client connects to a server that only accepts HTTP/1.1 or later
A security testing tool sends deliberately malformed version tokens like HTTP/9.9 to probe server behavior
A misconfigured load balancer rewrites the request line and introduces a version string the origin rejects
What To Know
A 505 points to a protocol-level configuration mismatch rather than a transient server problem. For client-side resolution, the requesting library or tool needs to use a protocol version the server accepts — typically HTTP/1.1 or HTTP/2. For server administrators, the error may indicate overly strict protocol policies or a proxy layer introducing incompatible version strings into forwarded requests. Checking server logs for the rejected version token reveals whether the issue is a legitimate old client or a misconfigured intermediary.
Frequently Asked Questions
Common interpretation questions about HTTP 505.
The fix depends on which side controls the protocol version. On the client side, updating the HTTP library to use HTTP/1.1 or HTTP/2 resolves most mismatches. On the server side, adjusting protocol policies to accept legacy versions or fixing proxy configurations that corrupt the version token eliminates the error.
Rarely. Browsers negotiate HTTP versions via TLS ALPN before sending any HTTP message, so version mismatches surface as connection failures rather than 505 responses. The error is more common in custom HTTP clients, security scanners, or misconfigured proxies that construct request lines manually.
A 426 means the server understood the request but requires a different protocol version to process it, typically accompanied by an Upgrade header. A 505 means the server simply does not support the version used, without offering a specific upgrade path. Both indicate version problems, but 426 is prescriptive while 505 is declarative.
Yes. If a proxy rewrites the request line and introduces a version identifier the origin server rejects, the origin returns 505. This often happens when a proxy forwards HTTP/2 traffic to a backend that only speaks HTTP/1.1 without properly downgrading the version in the request line.