gRPC headers are not proxied correctly
- Dominant language
- C#
- Stars
- 9.6k
- Forks
- 933
- Avg merge
- 12d 18h
- Merged PRs (30d)
- 2
Description
### Describe the bug
The setup is the following: a gRPC server that is behind YARP, and a client that calls the server.
The server has a gRPC bidirectional streaming method exposed. Before the messages are sent on this call, the client and the server have to perform the header exchange:
1. The client sends the headers to the server.
2. The server sends the headers to the client.
3. After the client receives the headers from the server, a regular message exchange starts (e.g., the client sends a message to the server, etc.).
What I observe is that step (3) never happens, as the client never receives the headers from the server.
If the client calls the server directly (without YARP), then step (3) happens, and the call procceeds.
### To Reproduce
I've implemented a minimal repro here:
https://github.com/bosh-3shape/YarpGrpcHeadersRepro
### Further technical details
- YARP.ReverseProxy 2.1.0
- Happens both on Windows and Linux. Have not tried on MacOS.
Contributor guide
Assessment
This issue has not been assessed yet.