You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Docker images are available on Docker Hub (sinagdev/test).
Error Symptoms
When trying to route based on headers, my gRPC client crashes with:
Traceback (most recent call last):
File "/app/serviceA.py", line 30, in <module>
run()
File "/app/serviceA.py", line 23, in run
response = stub.ProcessSession(request, metadata=metadata)
File "/usr/local/lib/python3.11/site-packages/grpc/_channel.py", line 1181, in __call__
return _end_unary_response_blocking(state, call, False, None)
File "/usr/local/lib/python3.11/site-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking
raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.INTERNAL
details = "unexpected error"
debug_error_string = "UNKNOWN:Error received from peer {created_time:"2025-05-10T19:01:13.827742158+00:00", grpc_status:13, grpc_message:"unexpected error"}"
>
However, this approach requires explicitly specifying the gRPC service and method, which is inconvenient when trying to match all requests. Additionally, Linkerd documentation does not mention this strict requirement for GRPCRoute."
Question
Why Does Linkerd require additional RPC match configuration for header-based routing in GRPCRoutes? The error suggests it's looking for an RPC match, but I'm only trying to use header-based matching as defined in the Gateway API spec.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Linkerd Unable to Route gRPC Requests with Header-Based Matches
Issue Description
I've discovered that Linkerd appears unable to route gRPC requests when a GRPCRoute definition contains match sections based on headers.
Environment
How to Reproduce
I've developed three test services:
service-a(client)service-b(server)service-c(second server)Here are the manifests:
manifest.yaml
Error Symptoms
When trying to route based on headers, my gRPC client crashes with:
Linkerd Logs
The Linkerd proxy logs show:
The key error message is:
Configuration
GRPCRoute
The GRPCRoute is successfully created and shows as "Accepted" and "ResolvedRefs: True" in status:
Expected Behavior
The GRPCRoute should route traffic with the "session-id: user-1" header to service-c, and all other traffic to service-b.
Fix option
To resolve the 'missing RPC match' error, I added the required 'service' and 'method' fields in the match section.
However, this approach requires explicitly specifying the gRPC service and method, which is inconvenient when trying to match all requests. Additionally, Linkerd documentation does not mention this strict requirement for GRPCRoute."
Question
Why Does Linkerd require additional
RPC matchconfiguration for header-based routing in GRPCRoutes? The error suggests it's looking for an RPC match, but I'm only trying to use header-based matching as defined in the Gateway API spec.All reactions