fix: iOS Fatal C++ Exception: St14overflow_error#91435
Conversation
|
|
|
🚧 @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.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / SafariScreen.Recording.2026-05-27.at.00.28.04.mp4 |
ScreenRecording_05-26-2026.22-07-40_1.MP4I reproduced this issue on production. I’ll try the fix now. |
Screen.Recording.2026-05-27.at.00.28.04.mp4It seems the fix is working, and the app is no longer crashing. |
huult
left a comment
There was a problem hiding this comment.
Screen.Recording.2026-05-27.at.00.43.52.mov
LGTM.
|
🚧 @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! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.3.84-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.3.86-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.3.88-0 🚀
Bundle Size Analysis (Sentry): |
|
I dont think that is related |
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.3.88-2 🚀
|
Explanation of Change
Fixes a use-after-free crash in
@fullstory/react-nativeon iOS in HybridApp. When signing in via SAML, the JS runtime is torn down (destroying the C++ TurboModule), but the ObjC FullStory instance stays alive as an FS SDK delegate. On foreground resume, FullStory firesfullstoryDidStartSession:which invokes a lambda holding a dangling pointer, causing a crash instd::__hash_table::__rehash_unique. The patch adds aninvalidatemethod to clear_eventEmitterCallbackon bridge teardown and guardsemitOnSessionStarted:to skip if the callback is already cleared.Fixed Issues
$ #91225
PROPOSAL:
Tests
iOS only — requires an account with SAML configured to redirect to OldDot after sign-in.
Offline tests
N/A
QA Steps
iOS only — requires an account with SAML configured to redirect to OldDot after sign-in.
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
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari