Fix iOS TTID crash by bumping Sentry React Native to 8.7.0#95501
Fix iOS TTID crash by bumping Sentry React Native to 8.7.0#95501marufsharifi wants to merge 19 commits into
Conversation
|
|
|
@Krishna2323 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
…entry-label and request-id in spans
| 'victory-native': path.resolve(dirname, '../../node_modules/victory-native/src/index.ts'), | ||
| // Required for @shopify/react-native-skia web support | ||
| 'react-native/Libraries/Image/AssetRegistry': false, | ||
| 'expo-updates': false, |
There was a problem hiding this comment.
Why do we need this change?
There was a problem hiding this comment.
@sentry/react-native@8.7.0 references optional expo-updates, but we do not install/use it. Webpack tries to resolve it during web/Jest builds and fails.
'expo-updates': false tells webpack to treat that optional module as unavailable, avoiding an unnecessary native dependency.
| - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) | ||
| - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) | ||
| - "FullStory (from `{:http=>\"https://ios-releases.fullstory.com/fullstory-1.70.1-xcframework.tar.gz\"}`)" | ||
| - "FullStory (from `{http: \"https://ios-releases.fullstory.com/fullstory-1.70.1-xcframework.tar.gz\"}`)" |
There was a problem hiding this comment.
Please remove unrelated changes from this file.
Krishna2323
left a comment
There was a problem hiding this comment.
@marufsharifi I think the patches are not correctly regenerate.
Regenerated the patch. One stale patch file remained from the previous version, but it’s fixed now. Could you please check again? thanks |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e201ed7dc4
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| "@sentry/core": "10.39.0", | ||
| "@sentry/react-native": "8.2.0", | ||
| "@sentry/core": "10.47.0", | ||
| "@sentry/react-native": "8.7.0", |
There was a problem hiding this comment.
Add a native resolver/dependency for expo-updates
Bumping @sentry/react-native to 8.7.0 pulls in Sentry's new default expoUpdatesListenerIntegration, whose module contains a literal require('expo-updates'). This PR only aliases expo-updates in the webpack config, while the lockfile still has no node_modules/expo-updates entry and metro.config.js has no native resolver alias, so iOS/Android Metro bundling will try to resolve that missing module and fail before the integration's try/catch can run. Please add a compatible expo-updates dependency or a Metro/native no-op resolver alongside the web alias.
Useful? React with 👍 / 👎.
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@Krishna2323 Resovled Codex feedback, Could you please check again? thanks |
|
@Krishna2323 Gentle bump. thanks |
|
Reviewing... |
|
@marufsharifi I think the The index hashes are still from Could you please regenerate |
|
@MelvinBot review |
|
🤖 Review of the Sentry RN 1.
|
Sorry for the miss here. I had previously regenerated with I removed the stale Could you please check and confirm if it looks okay now? Thanks! |
I checked the clean npm packages for @sentry/react-native@8.2.0 and 8.7.0. The patched target file |
|
@marufsharifi, could you please add the recordings? Just to make sure everything works correctly across all platforms. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppandroid_hybrid.mp4Android: mWeb Chromeandroid_mWeb.mp4iOS: HybridAppios_hybrid.mp4iOS: mWeb Safariios_mWeb.mp4MacOS: Chrome / Safariweb_chrome.mp4 |
|
@marufsharifi please ping when you have added the recordings, this is ready to be approved once that's done. |
|
@mountiny Please don’t merge this yet. I’m going to retest it again and will let you know once it’s ready. Thanks! |
|
@marufsharifi ping me in slack when ready |
|
🚧 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.
|
@marufsharifi any updates? |
|
@mountiny, that's done. thanks. |
|
🚧 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! 🧪🧪
|
|
@Krishna2323 I retested the iOS standalone build from a fresh setup after clearing caches, reinstalling The PR build is still failing though. Could you please also test the branch locally on your side and confirm whether the iOS standalone build works for you too? REC-20260718110054.mp4 |
|
@marufsharifi the CI build is Hybrid App build, does that work for you? |
Explanation of Change
This PR bumps
@sentry/react-nativefrom8.2.0to8.7.0.The reported iOS HybridApp crash happens in Sentry’s native Time To Initial Display path:
SentryFramesTracker.displayLinkCallbackRNSentryFramesTrackerListenerRNSentryTimeToDisplayNSString stringByAppendingStringSentry fixed this upstream in
@sentry/react-native@8.7.0via getsentry/sentry-react-native#5887 by synchronizing the nativeRNSentryTimeToDisplaystate used during navigation TTID tracking.This keeps the bump to the smallest version that includes the crash fix.
Fixed Issues
$ #95197
PROPOSAL: #95197 (comment)
Tests
Verify
@sentry/react-nativeresolves to8.7.0Verify iOS
Podfile.lockresolvesRNSentryto8.7.0Run
npx patch-package --patch-dir patchesRun iOS pod install for App / Mobile-Expensify as applicable
Build or smoke test iOS HybridApp
Verify that no errors appear in the JS console
Offline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)Avatar, 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.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
Screen.Recording.2026-07-14.at.5.45.45.PM.mp4
Android: mWeb Chrome
Recording_20260714_165130.mp4
iOS: Native
iOS: mWeb Safari
Screen.Recording.2026-07-14.at.6.38.33.PM.mp4
MacOS: Chrome / Safari
Screen.Recording.2026-07-14.at.4.45.51.PM.mp4