getsentry / sentry-javascript

Official Sentry SDKs for JavaScript
https://sentry.io
MIT License
7.97k stars 1.57k forks source link

All global breadcrumbs appear in all captured exceptions. #3120

Closed alarbada closed 3 years ago

alarbada commented 3 years ago

Package + Version

Version:

sentry.javascript.node

5.29.0

Description

Describe your issue in detail, ideally, you have a reproducible demo that you can show.

I can't understand why the following code:


const main = async () => {
    Sentry.addBreadcrumb({
        message: 'first'
    })

    Sentry.captureException(new Error('err1'))

    Sentry.addBreadcrumb({
        message: 'second'
    })

    Sentry.captureException(new Error('err2'))

    Sentry.addBreadcrumb({
        message: 'third'
    })

    Sentry.captureException(new Error('err3'))
}

main()

produces 3 exceptions with all three breadcrumbs. I'd expect:

I believe this is a bug, because I can achieve my desired behaviour using captureMessage.


const main = async () => {
    Sentry.addBreadcrumb({
        message: 'first'
    })

    Sentry.captureMessage(new Error('err1'))

    Sentry.addBreadcrumb({
        message: 'second'
    })

    Sentry.captureMessage(new Error('err2'))

    Sentry.addBreadcrumb({
        message: 'third'
    })

    Sentry.captureMessage(new Error('err3'))
}

main()

Here the captured messages have the proper breadcrumbs that I want. In fact, I'd go with captureMessage, but with it I loose stack traces, and it's less semantic. So what's up with captureException? Am I missing something? The docs don't explain this behaviour.

AdriVanHoudt commented 3 years ago

This might be solvable by using domains

github-actions[bot] commented 3 years ago

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀