-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
20 / 2020 of 20 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 tofalsein 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
typeandhandledto every captureException call where they're currently missing - update develop docs with better wording/examples and that SDKs should always set these properties