If you feel strongly about this, you can open an issue on https://github.com/grpc/grpc for Python.
On Thu, Dec 29, 2022 at 12:22 AM Jens Troeger <jens.troe...@gmail.com> wrote: > Thank you! > > Looking at the code for _InactiveRpcError > <https://github.com/grpc/grpc/blob/875066b61e3b57af4bb1d6e36aabe95a4f6ba4f7/src/python/grpcio/grpc/_channel.py#L318> > it does indeed inherit from RpcError > <https://github.com/grpc/grpc/blob/875066b61e3b57af4bb1d6e36aabe95a4f6ba4f7/src/python/grpcio/grpc/__init__.py#L301>. > Unfortunately though, that base class doesn’t give any hint regarding the > actual failure which, I suspect, is why subclasses and their status codes > exist. Declaring code() > <https://github.com/grpc/grpc/blob/875066b61e3b57af4bb1d6e36aabe95a4f6ba4f7/src/python/grpcio/grpc/_channel.py#L343-L344> > (and > other useful helpers) as an abstract method on RpcError would be helpful 🤔 > > On Wednesday, December 28, 2022 at 7:17:55 PM UTC+1 sanjay...@google.com > wrote: > >> Check this out >> https://grpc.github.io/grpc/python/grpc.html#grpc-exceptions >> >> "Raised by the gRPC library to indicate non-OK-status RPC termination." >> (although it doesn't reference InactiveRpcError there for which I don't >> have an answer) >> >> Exception is the only way to indicate an error in the RPC since returning >> error via the return value is not possible. >> >> >> >> >> On Wednesday, December 28, 2022 at 6:08:55 AM UTC-8 jens.t...@gmail.com >> wrote: >> >>> Hello, suppose I create a request >>> >>> request = SomeRequest(name="Name", data=data) >>> >>> and send that off to the gRPC server: >>> >>> response = some_stub.DoStuff(request) >>> >>> then all works fine for grpc.Status.OK >>> <https://grpc.github.io/grpc/core/md_doc_statuscodes.html>. However, it >>> seems that any error response status causes an exception on the calling >>> client, e.g. >>> >>> E grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that >>> terminated with: >>> E status = StatusCode.INVALID_ARGUMENT >>> E details = "..." >>> E debug_error_string = "..." >>> E > >>> >>> Is that exception intended, i.e. does *any* error response *always* >>> result in an exception here? >>> >>> I’m also a little befuddled by the “inactive” and I wonder if I’m >>> missing something, or if this just odd naming? >>> >>> Much thanks! >>> Jens >>> >> -- > You received this message because you are subscribed to the Google Groups " > grpc.io" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to grpc-io+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/grpc-io/84889b3a-945a-4163-b08c-2218e2a7f069n%40googlegroups.com > <https://groups.google.com/d/msgid/grpc-io/84889b3a-945a-4163-b08c-2218e2a7f069n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CA%2BPad6g2B6exOrbfNcN4F4CeWR6FNoO8PgH7rj2QgiozeOzSvw%40mail.gmail.com.