This PR addresses 2 issues:
It ensures that exceptions especially those arising from broken enumerables and gRPC operations are efficiently propagated back to the caller.
Following from the first point, calls to RequestStream.WriteAsync could throw an RpcException in scenarios where wrong credentials were provided. This occurs before RequestStream.CompleteAsync calls were made to append events, leading to unhandled exceptions. Therefore, the response.RequestStream in the TypedExceptionInterceptor was enhanced to address the race condition issue by ensuring exceptions are properly caught and translated. Credit goes to @josephcummings!
Fixed: Issue #250
This PR addresses 2 issues: It ensures that exceptions especially those arising from broken enumerables and gRPC operations are efficiently propagated back to the caller.
Following from the first point, calls to RequestStream.WriteAsync could throw an RpcException in scenarios where wrong credentials were provided. This occurs before RequestStream.CompleteAsync calls were made to append events, leading to unhandled exceptions. Therefore, the response.RequestStream in the TypedExceptionInterceptor was enhanced to address the race condition issue by ensuring exceptions are properly caught and translated. Credit goes to @josephcummings!