Repository navigation
[No QA] Add Sentry ReportingObserver integration to capture browser crash/intervention reports - #93049
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
🚧 @mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
lint and typecheck fails are not comming from this PR |
|
I can take a look at this one after an hour. |
|
OOO notice 🌴: tommorow I start my planned vacation and I'm back on Monday. In the meantime @VickyStash will keep an eye on this PR |
|
Kind bump here @suneox! |
I’m beginning to examine this one. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppN/A Android: mWeb ChromeN/A iOS: HybridAppN/A iOS: mWeb SafariN/A |
|
Overall, the implementation follows the documentation, so LGTM. However, as described, it's hard to simulate or request the browser to generate report events for 'crash' and 'intervention'. I've tried multiple solutions with no success, and I could only capture deprecation reports from the browser.
Browser support for Intervention/Crash reports (Chrome docs):
|
suneox
left a comment
There was a problem hiding this comment.
Tracked ReportingObserver event
https://expensify.sentry.io/issues/7542397051/events/208c177b6e1a454aa6d7b8b937f60eca/
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 @mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.4.10-0 🚀
Bundle Size Analysis (Sentry): |
|
🤖 Help site review: no changes required I reviewed the changes in this PR and no updates to Expensify's help site files ( Why:
Since the help site documents user-facing product behavior, and this change is invisible to end users, there's nothing to document. No draft PR was created. @sosek108, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.4.12-0 🚀
Bundle Size Analysis (Sentry): |
|
🤖 No help site changes required. I reviewed the changes in this PR. They add a web-only Sentry
This is instrumentation only — there is no user-facing behavior, UI, settings, tab, or feature change. The PR body itself confirms there are no QA steps and the change is "instrumentation only." Nothing in Because no customer-facing behavior changed, I did not create a draft docs PR. @sosek108, since this is instrumentation-only with no customer-facing behavior change, there is no help site PR to review. If you believe a docs update is warranted, let me know what behavior to document and I'll create one. |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.4.14-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.4.14-1 🚀
|

Explanation of Change
Adds a web-only Sentry ReportingObserver integration that taps the browser Reporting API to capture
crashandinterventionreports — including out-of-memory interventions — that the browser emits but that never surface as regular JavaScript exceptions. This gives us an early telemetry signal for browser-level crashes that the existing global error handlers can't catch. The integration is web-only: native exports a no-op stub for export parity and it's filtered out of the integrations list on native.This change is best effort only.
Fixed Issues
$ #93058
PROPOSAL:
Tests
These changes are hard to verify so they'll be tested on Adhoc build
Offline tests
N/A.
QA Steps
No QA steps. This is instrumentation only.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
https://github.com/user-attachments/assets/0a182460-0840-40c0-be39-4e3807f7b7f1Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
https://github.com/user-attachments/assets/f2125b7c-bf25-4c38-aacb-8a4e99c18694