Hey Patrick,

How are you sending the error to the client from the server side? You
should be calling `listener.error` or `listener.onError` with a
`FlightRuntimeException` (which you can get via
CallStatus.<STATUS_NAME>.withDescription(...).toRuntimeException);
this will get the status code and message to the client.

The error metadata is if you need to send additional structured data
as part of the error.

Best,
David

On 8/19/20, Patrick Woody <patrick.woo...@gmail.com> wrote:
> Hey all,
>
> I'm working on a project that has a Java arrow flight server and has a
> pyarrow client, both version 1.0.0. I've been trying to get richer errors
> back to the python client instead of the generic "grpc error ...".
>
> I see that the spec explicitly doesn't try to define metadata:
> https://arrow.apache.org/docs/format/Flight.html#error-handling, but I
> think it would certainly be useful to have them work together. It appears
> that the Java implementation doesn't seem to send the ErrorFlightMetadata
> and the C++ code has its own way of best effort extracting of additional
> metadata from the response
> https://github.com/apache/arrow/blob/master/cpp/src/arrow/flight/internal.cc#L86
>
> As of now, I'm just manually making the grpc metadata/exception so that
> pyarrow understands it but I'm curious if this is a problem others have run
> into / if I'm doing something silly. Similarly, I am wondering if this is
> something that requires cross-language definition - I'm a little unclear on
> the divide between what is considered a part of the Flight spec v.s.
> implementation specific. Happy to help if there is some follow up work
> here.
>
> Thanks!
> Pat
>

Reply via email to