-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
2 / 132 of 13 issues completedOpen
2 / 132 of 13 issues completed
Copy link
Labels
Description
Description
When Sentry SDKs capture errors (e.g. via captureException
), they include a mechanism
field on the captured exception(s). Among other metadata, the mechanism most importantly contains the following properties:
handled: boolean
: a boolean indicating if the captured exception was handled by users or not. (this is a hard/impossible decision sometimes, so we rather tend tofalse
in cases where we don't know. The limitations around this are another topic and out of scope for this issue)type: string
: an identifier which mechanism (or part of the SDK) captured the error.
By default, e.g. if users call captureException
, the mechanism defaults to:
{
handled: true,
type: 'generic'
}
However, ideally, our SDK instrumentation sets a custom mechanism for automatically captured errors, depending on which instrumentation or part of the SDK captured the error. For example:
captureException(error, {
mechanism: {
handled: false,
type: 'solidstart',
},
});
Unfortunately, we don't do this consistently across all SDKs, integrations or generally places where we call captureException
. We should change this and align on always setting handled
and type
.
type
naming pattern:
- should align with
sentry.origin
(aka Trace Origin) as much as possible (e.g. whenever we capture within a specific span). - if N/A directly, make sure naming pattern follows trace origin definition
For now, some general todos:
- align on a pattern what to set as
type
- add
type
andhandled
to every captureException call where they're currently missing - update develop docs with better wording/examples and that SDKs should always set these properties