From 06b309ecfb7b7fb19480f38eb1c3a3d27b82dd02 Mon Sep 17 00:00:00 2001 From: Enno Gelhaus Date: Mon, 4 Aug 2025 23:35:17 +0200 Subject: [PATCH 1/5] fix/sentry crash modal --- .../src/sentry/initialize.sentry.client.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts index 70e626d72..bbd0d4a97 100644 --- a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts +++ b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts @@ -15,6 +15,13 @@ export const initializeSentryClient = (environment: string, dsn: string) => autoInject: false, }), ], + beforeSend(event: Sentry.Event, hint: Sentry.EventHint) { + // Check if it is an exception, and if so, show the report dialog + if (event.exception && event.event_id) { + Sentry.showReportDialog({ eventId: event.event_id }); + } + return event; + }, replaysSessionSampleRate: environment === 'development' ? 1.0 : 0.1, replaysOnErrorSampleRate: environment === 'development' ? 1.0 : 0.1, }); From 370fdbeaafd220de164f878c8b9e7d2a154ea3d5 Mon Sep 17 00:00:00 2001 From: Enno Gelhaus Date: Mon, 4 Aug 2025 23:38:03 +0200 Subject: [PATCH 2/5] Update libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../src/sentry/initialize.sentry.client.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts index bbd0d4a97..178568533 100644 --- a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts +++ b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts @@ -18,7 +18,13 @@ export const initializeSentryClient = (environment: string, dsn: string) => beforeSend(event: Sentry.Event, hint: Sentry.EventHint) { // Check if it is an exception, and if so, show the report dialog if (event.exception && event.event_id) { - Sentry.showReportDialog({ eventId: event.event_id }); + try { + Sentry.showReportDialog({ eventId: event.event_id }); + } catch (err) { + // Prevent error reporting from causing its own errors + // Optionally log the error for debugging + // console.error('Failed to show Sentry report dialog:', err); + } } return event; }, From f76762b053271edbd6232a0cac7d40586841e6a5 Mon Sep 17 00:00:00 2001 From: Enno Gelhaus Date: Mon, 4 Aug 2025 23:39:45 +0200 Subject: [PATCH 3/5] Update libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../src/sentry/initialize.sentry.client.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts index 178568533..e4f33acc2 100644 --- a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts +++ b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts @@ -18,12 +18,15 @@ export const initializeSentryClient = (environment: string, dsn: string) => beforeSend(event: Sentry.Event, hint: Sentry.EventHint) { // Check if it is an exception, and if so, show the report dialog if (event.exception && event.event_id) { - try { - Sentry.showReportDialog({ eventId: event.event_id }); - } catch (err) { - // Prevent error reporting from causing its own errors - // Optionally log the error for debugging - // console.error('Failed to show Sentry report dialog:', err); + if (!shownReportDialogEventIds.has(event.event_id)) { + try { + Sentry.showReportDialog({ eventId: event.event_id }); + shownReportDialogEventIds.add(event.event_id); + } catch (err) { + // Prevent error reporting from causing its own errors + // Optionally log the error for debugging + // console.error('Failed to show Sentry report dialog:', err); + } } } return event; From ff39159aa4e08c0020f060b53fc12fd4079d7686 Mon Sep 17 00:00:00 2001 From: Enno Gelhaus Date: Mon, 4 Aug 2025 23:41:10 +0200 Subject: [PATCH 4/5] revert copilot changes --- .../src/sentry/initialize.sentry.client.ts | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts index e4f33acc2..bbd0d4a97 100644 --- a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts +++ b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts @@ -18,16 +18,7 @@ export const initializeSentryClient = (environment: string, dsn: string) => beforeSend(event: Sentry.Event, hint: Sentry.EventHint) { // Check if it is an exception, and if so, show the report dialog if (event.exception && event.event_id) { - if (!shownReportDialogEventIds.has(event.event_id)) { - try { - Sentry.showReportDialog({ eventId: event.event_id }); - shownReportDialogEventIds.add(event.event_id); - } catch (err) { - // Prevent error reporting from causing its own errors - // Optionally log the error for debugging - // console.error('Failed to show Sentry report dialog:', err); - } - } + Sentry.showReportDialog({ eventId: event.event_id }); } return event; }, From 4e56391be94ecbde9ae20db13500caadb19cfc4e Mon Sep 17 00:00:00 2001 From: Enno Gelhaus Date: Mon, 4 Aug 2025 23:46:31 +0200 Subject: [PATCH 5/5] error catching for crash modal --- .../src/sentry/initialize.sentry.client.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts index bbd0d4a97..ae91d99c1 100644 --- a/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts +++ b/libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts @@ -18,7 +18,15 @@ export const initializeSentryClient = (environment: string, dsn: string) => beforeSend(event: Sentry.Event, hint: Sentry.EventHint) { // Check if it is an exception, and if so, show the report dialog if (event.exception && event.event_id) { - Sentry.showReportDialog({ eventId: event.event_id }); + try { + // Only show report dialog in production to avoid spam during development + if (environment === 'production') { + Sentry.showReportDialog({ eventId: event.event_id }); + } + } catch (err) { + // Silently fail if dialog can't be shown - don't let this break error reporting + // Note: Can't use Sentry logging here as we're already in a beforeSend callback + } } return event; },