Skip to content

Note that grpchealth needs an HTTP/2 server with trailers - #456

Merged
stefanvanburen merged 3 commits into
mainfrom
svanburen/grpchealth-server-note
Nov 10, 2026
Merged

stefanvanburen merged 3 commits into
mainfrom
svanburen/grpchealth-server-note

Conversation

@stefanvanburen

Copy link
Copy Markdown
Member

Same note as #453 but for grpchealth: grpc-health-probe (and k8s gRPC probes) only speak gRPC, so the README example served on uvicorn or granian just fails. Checked with grpc-health-probe against pyvoy (SERVING), uvicorn (can't connect), and granian (no trailers).

`grpc-health-probe` and Kubernetes gRPC probes speak only the gRPC
protocol, so served as the README shows on Uvicorn or Granian they
fail: against Uvicorn, `grpc-health-probe` reports `failed to connect
service ... within 3s`, and against Granian `health rpc failed` with
"ASGI server does not support ASGI trailers extension". Against pyvoy
it reports `status: SERVING`.

Signed-off-by: Stefan VanBuren <stefan@vanburen.xyz>
@stefanvanburen
stefanvanburen marked this pull request as ready for review November 10, 2026 01:04
Comment thread connectrpc-grpchealth/README.md Outdated
Comment on lines +45 to +48
`grpc-health-probe` and Kubernetes gRPC probes speak the gRPC protocol,
which needs HTTP/2 and the ASGI trailers extension. Serve the app with
[pyvoy](https://github.com/curioswitch/pyvoy), which supports both; Uvicorn
(HTTP/1.1 only) and Granian (no trailers) don't.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`grpc-health-probe` and Kubernetes gRPC probes speak the gRPC protocol,
which needs HTTP/2 and the ASGI trailers extension. Serve the app with
[pyvoy](https://github.com/curioswitch/pyvoy), which supports both; Uvicorn
(HTTP/1.1 only) and Granian (no trailers) don't.
Reflection uses the gRPC protocol which requires a server that supports HTTP/2 trailers such as [pyvoy](https://pyvoy.dev).

Signed-off-by: Stefan VanBuren <stefan@vanburen.xyz>
Signed-off-by: Stefan VanBuren <stefan@vanburen.xyz>
@stefanvanburen
stefanvanburen merged commit b31937e into main Nov 10, 2026
25 checks passed
@stefanvanburen
stefanvanburen deleted the svanburen/grpchealth-server-note branch November 10, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants