As part of a research project we're working on at Carnegie Mellon University, we're using GRPC client interceptors to inject faults when the message contents contain certain keywords. For this scenario, we're looking only at the unary API.
To achieve this, I've made a custom interceptor that throws an exception (or, creates a Status of a particular type like FAILED_PRECONDITION, and converting that to an exception) and throwing in the sendMessage callback, where I can access the message contents. Before I throw the exception, I call delegate().halfClose() and *do not* call super.sendMessage.
The problem I'm running into is this: I'm seeing no problems locally, but when I try my code in the GitHub Actions environment, I'm still seeing the call be received at the remote service it's calling. It's transient: I put my test in a loop and it's failing at different iterations of the loop.
Should this be happening? Any insights on how I can go about debugging exactly what is happening?
Thanks,
Chris