penumbra-zone / web

Apache License 2.0
15 stars 16 forks source link

PromiseClient conceals errors we raise in services #298

Closed turbocrime closed 10 months ago

turbocrime commented 10 months ago

When using a buf PromiseClient to interact with services, errors arising from or arriving via the transport are understood as "Internal" errors and are concealed from the caller.

Screenshot 2023-12-12 at 17 42 58

This prevents use of error messages and contents for signalling things like rejection reason, and prevents distinguishing "normal" errors from a broken application.

This requires either:

  1. stepping back from the Transport concept to handle failures directly at the Client level
  2. investigating ways to provoke meaningful Client behavior from the Transport, such as by mocking analogous http codes
  3. or, revising plans on things like transaction approval denials.
turbocrime commented 10 months ago

It seems like maybe i'm not fully taking advantage of ConnectError which has its own json behavior. That's probably the first route of investigation

turbocrime commented 10 months ago
Screenshot 2023-12-12 at 18 53 15

progress in work on #295

turbocrime commented 10 months ago

fixed in #295