no_application_protocol
no_application_protocol (120) is sent when the client offered ALPN (Application-Layer Protocol Negotiation) extension but none of the offered protocols are supported by the server. The server cannot select an application protocol from the client's list and closes the connection.
Alert Code
120
Level
Fatal
Standard
RFC 8446
Description
ALPN (RFC 7301) allows TLS clients to advertise which application protocols they support – for example 'h2' for HTTP/2 and 'http/1.1' for HTTP/1.1. If the server only supports HTTP/2 but the client only offered 'http/1.1', or if a gRPC server receives a connection without 'h2' in the ALPN list, the server sends no_application_protocol. This is common in misconfigured reverse proxies where the ALPN negotiation between the client and proxy does not match the proxy's backend configuration.
Common Causes
- –HTTP/2 server receives client that only advertises 'http/1.1' in ALPN
- –gRPC server requires 'h2' but client ALPN list omits it
- –Reverse proxy ALPN mismatch between frontend and backend
- –Client TLS library configured with wrong ALPN protocols