464 Incompatible protocol

HTTP response status code 464 Incompatible protocol is an unofficial client error specific to AWS Elastic Load Balancer. The load balancer returns this code when receiving an HTTP request with a protocol version incompatible with the target group configuration.

Usage

The 464 Incompatible protocol status code indicates the client submitted a request using a protocol version the target group does not accept. For example, sending a HTTP/1.1 request when the target group expects HTTP/2.

SEO impact

Search engines like Google do not index a URL with 464 HTTP response status code. URLs previously indexed with this code are removed from search results.

Example

A client requests a resource using HTTP/1.1. The AWS Application Load Balancer responds with 464 Incompatible protocol because the target group only accepts HTTP/2.

Request

GET /tech-news HTTP/1.1
Host: www.example.re

Response

HTTP/1.1 464
Content-Type: text/html
Content-Length: 140

<html>
  <head>
    <title>AWS Load Balancer Error</title>
  </head>
  <body>
   <p>Incompatible protocol. Use HTTP/2.</p>
  </body>
</html>

How to fix

Identify the protocol mismatch. The three common scenarios producing 464 are:

  • The client sends HTTP/1.1 but the target group expects HTTP/2 or gRPC
  • The client sends gRPC but the target group expects HTTP/1.1
  • The client sends a non-POST HTTP/2 request but the target group uses gRPC (gRPC requires POST)

Check the target group protocol version in the AWS console under EC2 > Target Groups > Attributes, or query with the CLI:

aws elbv2 describe-target-groups \
  --load-balancer-arn <arn> \
  --query "TargetGroups[].ProtocolVersion"

Match the listener protocol to the target group protocol version. An HTTPS listener is required for gRPC target groups. HTTP listeners are incompatible with gRPC protocol versions.

Update the client to send requests using the protocol the target group expects. For gRPC backends, the client must use HTTP/2 with POST method exclusively. For HTTP/2 target groups, the client must negotiate HTTP/2 via TLS ALPN.

Check TLS settings. AWS ALBs require TLS 1.2 or higher for HTTPS listeners. Older TLS versions or cipher suites lacking HTTP/2 ALPN support trigger this error.

For WebSocket connections (wss://), verify the target group protocol is set to HTTP/1.1, not HTTP/2 or gRPC. WebSocket upgrades require HTTP/1.1 on the target group.

Takeaway

The 464 Incompatible protocol status code is a client error from AWS Elastic Load Balancer when the request protocol does not match the target group configuration.

See also

Last updated: March 6, 2026