Skip to content
HTTP 505 HTTP Version Not Supported — What It Means & How to Fix

HTTP 505 HTTP Version Not Supported — What It Means & How to Fix

DodaTech Updated Jun 20, 2026 4 min read

HTTP 505 HTTP Version Not Supported is an HTTP response status code that indicates the server refuses to support the HTTP protocol version used in the request. This error is rare in modern web environments but can occur with legacy clients, misconfigured proxies, or during HTTP/2 upgrade negotiation failures.

What It Means

Defined in RFC 7231 Section 6.6.6, the 505 status code signals that the server does not support the major HTTP version used in the request line. The server should indicate which protocol versions it does support in the response.

This is distinct from 426 Upgrade Required — 505 means the version itself is unsupported, while 426 means the server wants the client to switch to a specific protocol.

When It’s Sent

  • Legacy HTTP/0.9 requests — Ancient clients or scripts sending HTTP/0.9 requests to modern servers.
  • HTTP/2 upgrade failures — Clients that incorrectly negotiate HTTP/2 and send malformed frames.
  • Misconfigured proxies — A proxy rewrites the HTTP version to one the backend server does not support.
  • Load balancer version mismatch — Front-end load balancer speaks HTTP/2 but back-end only handles HTTP/1.1.
  • Custom clients with wrong version strings — Hardcoded HTTP version strings like HTTP/10.0 or HTTP/3.0 in custom software.

Real Example

The following curl command manually sets an unsupported HTTP version:

curl --http1.0 https://httpbin.org/status/505 -v 2>&1 | grep -E "< HTTP|Version"

Expected response:

HTTP/1.1 505 HTTP Version Not Supported
Date: Sat, 20 Jun 2026 12:00:00 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 198

<html>
<head><title>505 HTTP Version Not Supported</title></head>
<body><h1>HTTP Version Not Supported</h1><p>The HTTP version used in the request is not supported by this server.</p></body>
</html>

How to Debug & Fix

Client-Side

  1. Update the HTTP client library — Old libraries may send HTTP/0.9 or HTTP/1.0 by default.
  2. Check proxy configuration — If behind a proxy, ensure the proxy uses a supported HTTP version.
  3. Use the latest HTTP version — Modern browsers and tools use HTTP/1.1 or HTTP/2 automatically.
  4. Verify HTTP/2 negotiation — If using HTTP/2, ensure the TLS handshake uses ALPN correctly.
  5. Test with a different client — Try curl, a browser, or a different HTTP library to isolate the issue.

Server-Side

  1. Check the configuration — Ensure the server supports the HTTP versions your clients use.
  2. Inspect proxy/load balancer — If using a reverse proxy, verify the back-end HTTP version compatibility.
  3. Update legacy software — Upgrade old server software that only supports HTTP/1.0.
  4. Log the request-line version — Capture the version string from the request line to identify the client.
  5. Add Accept header for versioning — Use Upgrade and Accept headers to negotiate protocol versions.

Common Causes Table

ScenarioLikely CauseHow to Fix
Old script returns 505Script hardcodes HTTP/0.9 in the requestUpdate the script to use HTTP/1.1
Proxy error after upgradeLoad balancer upgraded to HTTP/2 but backend uses HTTP/1.1Configure proxy to translate between versions
Custom client failsHardcoded HTTP/10.0 version stringFix the version string to HTTP/1.1
Telnet-based requestManual HTTP request sent with wrong versionUse a proper HTTP client like curl
Legacy embedded deviceIoT device sends HTTP/1.0 requestsUpdate device firmware or add a proxy that translates

FAQ

Is HTTP 505 still relevant today?
Rarely. Modern servers support HTTP/1.1 and most support HTTP/2 and HTTP/3. The 505 error typically indicates a misconfigured proxy or an extremely outdated client.
What HTTP versions do modern servers support?
Most web servers support HTTP/1.1 (required by RFC 7230), HTTP/2 (via TLS ALPN), and increasingly HTTP/3 (QUIC). Very few actively running servers still support only HTTP/1.0.
Can a 505 be caused by a reverse proxy?
Yes. If a reverse proxy or load balancer translates HTTP/2 requests into HTTP/1.1 for the backend, but the translation is incorrect, the backend may receive a malformed version string and return 505.

Related Codes

HTTP 426 Upgrade Required — The server requires a protocol upgrade.

HTTP 501 Not Implemented — The server does not support the functionality required.

HTTP 400 Bad Request — The server cannot process the request due to malformed syntax.

HTTP 511 Network Authentication Required — Network authentication is required to access the resource.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro