14 UNAVAILABLE 🔌 API

gRPC Error: 14 UNAVAILABLE: No connection established / failed to connect to all addresses

The gRPC client couldn’t reach the server — wrong address/port, TLS vs plaintext mismatch, server down, or a proxy that doesn’t support HTTP/2.

Seen on: REST API

Meaning

gRPC needs end-to-end HTTP/2. Using TLS credentials against a plaintext server (or vice versa), load balancers without HTTP/2 to the backend, or DNS issues lead to UNAVAILABLE.

Common causes

  • Server not running or wrong host:port
  • TLS/plaintext mismatch (credentials vs insecure)
  • Proxy/load balancer not passing HTTP/2 (gRPC)
  • DNS resolution issues in containers

⚡ Quick fix

  1. Verify the server with grpcurl
  2. Match credentials (createInsecure vs createSsl) to the server
  3. Enable HTTP/2/gRPC on the proxy (Nginx grpc_pass, ALB gRPC target)

Detailed fix by platform

Shell

  1. bash
    grpcurl -plaintext localhost:50051 list
    grpcurl api.example.com:443 list

Nginx

  1. location / { grpc_pass grpc://backend:50051; }

How to diagnose

  1. Reach — grpcurl works?
  2. TLS — Server expects TLS?
  3. Proxy — HTTP/2 end to end?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.