UNAVAILABLE: Failed ALPN negotiation: Unable to find compatible protocol

We are facing the issue with https : Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE: Failed ALPN negotiation: Unable to find compatible protocol
Also for reference, Same issue we are getting with/without adding keystore and truststore certificates.

while for http and localhost it is working fine with out any issues.

with java version : 21
ngnix version : v1.12.1

here is the complete ingress properties

kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: camunda-zeebe-gateway-grpc
namespace: pp-dev
uid: 6fcab0f2-abe2-4XXXX
resourceVersion: ‘35263055’
generation: 1
creationTimestamp: ‘2025-09-29T06:33:29Z’
labels:
app: camunda-platform
app.kubernetes.io/component: zeebe-gateway
app.kubernetes.io/instance: camunda
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: camunda-platform
app.kubernetes.io/part-of: camunda-platform
app.kubernetes.io/version: 8.7.10
helm.sh/chart: camunda-platform-12.4.0
annotations:
ingress.kubernetes.io/rewrite-target: /
meta.helm.sh/release-name: camunda
meta.helm.sh/release-namespace: pp-dev
nginx.ingress.kubernetes.io/backend-protocol: GRPC
nginx.ingress.kubernetes.io/force-ssl-redirect: ‘true’
nginx.ingress.kubernetes.io/grpc-backend: ‘true’
nginx.ingress.kubernetes.io/http2-push-off: ‘true’
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
nginx.ingress.kubernetes.io/proxy-buffering: ‘off’
nginx.ingress.kubernetes.io/proxy-read-timeout: ‘3600’
nginx.ingress.kubernetes.io/proxy-request-buffering: ‘off’
nginx.ingress.kubernetes.io/proxy-send-timeout: ‘3600’
nginx.ingress.kubernetes.io/server-snippet: |
grpc_read_timeout 300;
grpc_send_timeout 300;
client_body_timeout 60;
client_header_timeout 60;
client_max_body_size 1m;
nginx.ingress.kubernetes.io/ssl-redirect: ‘true’
managedFields:

* manager: helm
  operation: Update
  apiVersion: networking.k8s.io/v1
  time: ‘2025-09-29T06:33:29Z’
  fieldsType: FieldsV1
  fieldsV1:
  f:metadata:
  f:annotations:
  .: {}
  f:ingress.kubernetes.io/rewrite-target: {}
  f:meta.helm.sh/release-name: {}
  f:meta.helm.sh/release-namespace: {}
  f:nginx.ingress.kubernetes.io/backend-protocol: {}
  f:nginx.ingress.kubernetes.io/proxy-buffer-size: {}
  f:labels:
  .: {}
  f:app: {}
  f:app.kubernetes.io/component: {}
  f:app.kubernetes.io/instance: {}
  f:app.kubernetes.io/managed-by: {}
  f:app.kubernetes.io/name: {}
  f:app.kubernetes.io/part-of: {}
  f:app.kubernetes.io/version: {}
  f:helm.sh/chart: {}
  f:spec:
  f:ingressClassName: {}
  f:rules: {}
  f:tls: {}
* manager: nginx-ingress-controller
  operation: Update
  apiVersion: networking.k8s.io/v1
  time: ‘2025-09-29T06:34:01Z’
  fieldsType: FieldsV1
  fieldsV1:
  f:status:
  f:loadBalancer:
  f:ingress: {}
  subresource: status
* manager: dashboard
  operation: Update
  apiVersion: networking.k8s.io/v1
  time: ‘2025-09-29T07:40:29Z’
  fieldsType: FieldsV1
  fieldsV1:
  f:metadata:
  f:annotations:
  f:nginx.ingress.kubernetes.io/force-ssl-redirect: {}
  f:nginx.ingress.kubernetes.io/grpc-backend: {}
  f:nginx.ingress.kubernetes.io/http2-push-off: {}
  f:nginx.ingress.kubernetes.io/proxy-buffering: {}
  f:nginx.ingress.kubernetes.io/proxy-read-timeout: {}
  f:nginx.ingress.kubernetes.io/proxy-request-buffering: {}
  f:nginx.ingress.kubernetes.io/proxy-send-timeout: {}
  f:nginx.ingress.kubernetes.io/server-snippet: {}
  f:nginx.ingress.kubernetes.io/ssl-redirect: {}
  spec:
  ingressClassName: nginx
  tls:
* hosts:
* sampleapp.dev.echonet
  secretName: camunda-tls
  rules:
* host: sampleapp.dev.echonet
  http:
  paths:
* path: /
  pathType: Prefix
  backend:
  service:
  name: camunda-zeebe-gateway
  port:
  number: 26500
  status:
  loadBalancer:
  ingress:
* ip: 99.xxxx.99.151

Hi @ssmahanta - this error is usually because the network doesn’t support HTTP/2, which is required for gRPC. There are a few threads that might offer some solutions, such as this one:

https://forum.camunda.io/t/zeebe-error-self-managed/51381/6

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.