Hey Michael, Unfortunately that's the best you can do at the moment (a decorator will at least help you get rid of the boilerplate).
Note that when raising the Flight-specific exceptions from pyarrow.flight, you can pass a second 'extra_info' argument which is a binary blob that'll get sent to the client. You can then unpack this on the client, so you could stuff the traceback there. (Note that this blob isn't included in the message by default. It's accessible via FlightError.extra_info.) Middleware can be used to intercept requests and log exceptions server-side, but they don't get to modify the error response. In principle this could be implemented, though - would that help? Best, David On Wed, Oct 6, 2021, at 17:34, Michael Ark wrote: > I noticed when I get server-side errors on Apache Arrow Flight, my Flight > client will get the following `FlightServerError`, with the original message > and Python exception that was raised. The traceback, however is not for the > server-side code. Is there a way to include the original Python code > traceback for all FlightServerErrors? One way I can think of doing this is > try-except all errors in each server function and reraise the errors with the > traceback concatenated with the original message, but this seems hacky. > > > pyarrow._flight.FlightServerError: 'snetio' object has no attribute > > '_sdict'. Detail: Python exception: AttributeError > > pyarrow/_flight.pyx:60: FlightServerError > > Thanks and appreciate your input!
