FIX error-interceptor-ctx keeps ctx state of non-erroring interceptor… #327
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…s or :ctx from cause
previous:
(:ctx data)
was used to getctx
, orctx
started from scratch onerror for error-interceptors-chain
however, if a resource has
(throw (ex-info "..." {:ctx yada-ctx}))
then the:ctx
is likely on the cause(ex-cause e)
, so(some->> e ex-cause ex-data :ctx)
gets thectx
if a user added it toex-info
this isn't good enough, as if an error is thrown without user doing
(try catch (throw (ex-info ...))
then we don't have thectx
anymore, but weprobably want the
ctx
for error reportingthe below code iterates through each interceptor and returns the last ctx state
before the interceptor chain throws. so now our error-interceptor-chain has
whatever
ctx
that existed when the error happened.