Skip to content

464 Incompatible Protocol Versions

AWS load balancer code for a mismatch between the client protocol version and the target group's expected version.

Status

HTTP/1.1 464 Incompatible Protocol Versions

Details

  • Category: 4xx
  • Status: Unofficial (AWS Elastic Load Balancing). Not registered with IANA. A server, framework, or CDN convention.
  • Specification: none, not defined by any RFC
  • Cacheable: Not cacheable
  • Response body: Allowed
  • Retry: Retry only after changing the request

An Application Load Balancer returns 464 when the incoming request protocol does not match what the target group is configured to speak, for example an HTTP/1.1 request routed to a gRPC target group, or HTTP/2 traffic sent to a target expecting HTTP/1.1.

It is a configuration error rather than anything the caller did wrong.

Common causes

  • A target group protocol version that does not match the client's protocol.
  • gRPC targets receiving plain HTTP/1.1 requests.

How to fix it

As the client

  • Use the protocol the endpoint expects. For gRPC that means HTTP/2 with the right content type.

As the server

  • Set the target group protocol version to match real client traffic.
  • Split incompatible protocols into separate listeners and target groups.

Examples

A protocol mismatch at the load balancer

HTTP request

GET /Service/Method HTTP/1.1
Host: grpc.example.com

HTTP response

HTTP/1.1 464

See also