Skip to content

Conversation

jpnurmi
Copy link
Collaborator

@jpnurmi jpnurmi commented Jul 20, 2025

Pre-generate an event ID for a potential future crash on the client side to be able to associate feedback with the crash event at the time of the crash. Extracted from #1303.

Before, Crashpad events (__sentry-event) were sent without ID. Even if the server generated an ID on demand and sent it as a response, it was too late for the upcoming feedback handler / crash reporter (#1223). It needs an ID before the event is sent because the user might not give consent to send anything at all.

Before

msgpack2json -p -i <run>/__sentry-event

{
    "level": "fatal",
    "platform": "native",
    "release": "sentry-playground@1.2.3",
    "environment": "development",
    "sdk": {
        "name": "sentry.native",
        "version": "0.9.1",
        "packages": [
            {
                "name": "github:getsentry/sentry-native",
                "version": "0.9.1"
            }
        ],
        "integrations": [
            "crashpad"
        ]
    },
    "tags": {
        "backend": "crashpad"
    },
    "extra": {},
    "contexts": {
        "os": {
            "name": "macOS",
            "version": "15.5.0",
            "build": "24F74",
            "kernel_version": "24.5.0"
        },
        "trace": {
            "trace_id": "be7045b229de43014da2b15ceb4dbedf",
            "span_id": "4a800c2ce1b24ebf",
            "sample_rand": 0.3444084273172463
        }
    }
}

After

msgpack2json -p -i <run>/__sentry-event

{
    "event_id": "62e3e0f8-d0d1-450a-1f6e-89faf1fe3862",
    "level": "fatal",
    "platform": "native",
    "release": "sentry-playground@1.2.3",
    "environment": "development",
    "sdk": {
        "name": "sentry.native",
        "version": "0.9.1",
        "packages": [
            {
                "name": "github:getsentry/sentry-native",
                "version": "0.9.1"
            }
        ],
        "integrations": [
            "crashpad"
        ]
    },
    "tags": {
        "backend": "crashpad"
    },
    "extra": {},
    "contexts": {
        "os": {
            "name": "macOS",
            "version": "15.5.0",
            "build": "24F74",
            "kernel_version": "24.5.0"
        },
        "trace": {
            "trace_id": "10b740a911374e5d4d918308abed7cd2",
            "span_id": "2f040e2ccb5b4460",
            "sample_rand": 0.502786153155452
        }
    }
}

@jpnurmi jpnurmi marked this pull request as ready for review July 21, 2025 06:22
@jpnurmi jpnurmi requested review from vaind and JoshuaMoelans July 21, 2025 06:24
Copy link
Collaborator

@vaind vaind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM except for the name of the new function

jpnurmi and others added 2 commits July 21, 2025 11:36
Co-authored-by: Ivan Dlugos <6349682+vaind@users.noreply.github.com>
Copy link
Member

@JoshuaMoelans JoshuaMoelans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, minor nit on adding a more clarifying docstring

Co-authored-by: JoshuaMoelans <60878493+JoshuaMoelans@users.noreply.github.com>
@jpnurmi jpnurmi merged commit 205831f into master Jul 25, 2025
64 of 67 checks passed
@jpnurmi jpnurmi deleted the ref/crashpad-event-id branch July 25, 2025 15:30
@jpnurmi jpnurmi mentioned this pull request Jul 29, 2025
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants