HTTP_1_1_REQUIRED
HTTP_1_1_REQUIRED (0xd) is sent when an HTTP/2 server determines the client's request requires HTTP/1.1. The server cannot process the request over HTTP/2 and instructs the client to retry using HTTP/1.1. The client should reconnect on a new TLS connection without the h2 ALPN token.
Code
0xd
Decimal
13
Standard
RFC 9113 §7
Description
HTTP_1_1_REQUIRED is the graceful downgrade mechanism from HTTP/2 to HTTP/1.1. The server sends GOAWAY with HTTP_1_1_REQUIRED when a specific request cannot be handled over HTTP/2 – for example, an HTTP upgrade-based WebSocket request that requires HTTP/1.1 semantics, or a legacy backend that only understands HTTP/1.1. The client must close the HTTP/2 connection and reconnect using HTTP/1.1. The retry should not include h2 in the ALPN extension, or the server will again reject it.
Common Causes
- –WebSocket upgrade request requiring HTTP/1.1 semantics
- –Legacy backend proxy that cannot handle HTTP/2
- –Server-side feature requiring HTTP/1.1 semantics not available in HTTP/2