getsentry / sentry

Developer-first error tracking and performance monitoring
https://sentry.io
Other
38.94k stars 4.17k forks source link

With chained errors, which one counts as the main one? #64088

Open lobsterkatie opened 8 months ago

lobsterkatie commented 8 months ago

There have been a number of issues which have come up lately having to do with which one of a chained set of errors we use for the purposes of grouping, titling an issue, calculating stack.module, etc. In many cases, what we're doing is the opposite of what the user expects, i.e., we're picking the wrong error to use. Here are a few examples:

To solve this we need to:

Semi-related: In some cases we may want to reverse the order of the linked errors before we decide which one to use. (In those cases, we'd do this rather than just make a different choice because the order affects things like how the chain of errors is displayed in the UI.) See https://github.com/getsentry/sentry/issues/64087.

lobsterkatie commented 8 months ago

Just wanted to highlight part of @markushi's comment on https://github.com/getsentry/sentry-java/pull/3184, as I think it's an interesting idea to consider vis-à-vis titling. (The whole thread there is relevant and worth reading, but didn't want to lose track of this idea in particular.)

Are the error message and stacktrace of the wrapper error always the same and/or do they provide any informational value?

Whilst the wrapped exception itself and it's stacktrace don't provide any extra information, it indicates one crucial semantic information: An app crash is about to happen.

Thinking more about future solutions: I'm wondering if in situations where the wrapping exception contains no in-app frames, we simply could decide to just use the inner exception for titleing.

lobsterkatie commented 7 months ago

More discussion of the above: https://github.com/getsentry/sentry/issues/62299#issuecomment-1971939190

armenzg commented 4 months ago

An example of picking the title from the cause error.