[go: up one dir, main page]

Streaming RPCs return hard to debug EOF error to the client if the request is rejected by the server

Our streaming RPCs generally accept a header message as the first message in the stream. This header message contains the target repository and other parameters for the RPC. After sending the header, the clients generally begin streaming the data. If the server rejects the RPC based on the header, it returns an error and closes the stream. The clients generally don't see this error as they receive an EOF error from the stream's SendMsg method. This can lead to hard to debug error messages on the client side.

Some ways around this could be to wait for an acknowledgement from the server prior to streaming. If gRPC returned the error that caused stream termination from SendMsg, that could also help produce better errors on the client.

From !4573 (comment 952442660)