diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d6f56c5e..4dbc8549e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ - Android: Expose app-hang detection through the NDK bindings via `NdkOptions.setEnableAppHangTracking()` and `NdkOptions.setAppHangTimeoutMillis()`. ([#1823](https://github.com/getsentry/sentry-native/pull/1823)) +**Fixes**: + +- Native/Windows: ensure valid event IDs for fast-fail crash envelopes to fix launching of the external crash reporter for fast-fail crashes. ([#1832](https://github.com/getsentry/sentry-native/pull/1832)) + ## 0.15.2 **Fixes**: diff --git a/src/backends/native/sentry_crash_daemon.c b/src/backends/native/sentry_crash_daemon.c index 155235d62..95a3638ed 100644 --- a/src/backends/native/sentry_crash_daemon.c +++ b/src/backends/native/sentry_crash_daemon.c @@ -2373,6 +2373,8 @@ build_native_event(const sentry_crash_context_t *ctx, if (sentry_value_is_null(event)) { event = sentry_value_new_event(); + } else { + sentry__ensure_event_id(event, NULL); } apply_breadcrumbs_from_ring_files(event, run_folder, ctx); diff --git a/tests/assertions.py b/tests/assertions.py index aa7efd1e5..adacce9af 100644 --- a/tests/assertions.py +++ b/tests/assertions.py @@ -447,8 +447,10 @@ def assert_inproc_crash(envelope): def assert_native_crash(envelope, exception_code=None): + assert envelope.headers["event_id"] event = envelope.get_event() assert event is not None + assert event["event_id"] assert_matches(event, {"level": "fatal"}) exc = event["exception"]["values"][0] diff --git a/tests/test_integration_native.py b/tests/test_integration_native.py index 70884ec97..f7dd19f95 100644 --- a/tests/test_integration_native.py +++ b/tests/test_integration_native.py @@ -82,6 +82,10 @@ def test_native_capture_crash(cmake, httpserver): ) assert waiting.result + assert len(httpserver.log) >= 1 + envelope = Envelope.deserialize(httpserver.log[0][0].get_data()) + assert_native_crash(envelope) + @pytest.mark.skipif( sys.platform != "win32" or bool(os.environ.get("TEST_MINGW")),