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, orctxstarted from scratch onerror for error-interceptors-chain
however, if a resource has
(throw (ex-info "..." {:ctx yada-ctx}))then the:ctxis likely on the cause(ex-cause e), so(some->> e ex-cause ex-data :ctx)gets thectxif a user added it toex-infothis isn't good enough, as if an error is thrown without user doing
(try catch (throw (ex-info ...))then we don't have thectxanymore, but weprobably want the
ctxfor 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
ctxthat existed when the error happened.