The logs were clean until the Identity-Aware Proxy gRPC error hit, killing the stream without warning. One second the service was pushing data, the next it was gone. No retries, no fallback, just a red entry no one wanted to see.
The Identity-Aware Proxy (IAP) protects apps with Google-managed authentication, but gRPC adds a layer of complexity. Common REST flows break here. If your client is not sending the right OAuth token or metadata, IAP closes the connection. This can look like UNAVAILABLE, PERMISSION_DENIED, or UNAUTHENTICATED in your logs.
With gRPC, every call must carry an Authorization header using a valid identity token. That token must match the audience of the target service. If that audience claim (aud) is wrong, IAP’s front end rejects the handshake before your code runs. Also watch for transport-layer issues: HTTP/2 negotiation failures under IAP terminate gRPC streams early. TLS mismatches and ALPN settings can silently trigger gRPC status codes that mask the root cause.
To debug an Identity-Aware Proxy gRPC error: