You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-08-08] iOS - App crashes upon launch #97552
Version Number: 9.4.47-0 Reproducible in staging?: Yes Reproducible in production?: No If this was caught during regression testing, add the test name, ID and link from BrowserStack: N/A Email or phone of affected tester (no customers): N/A Issue reported by: Applause Internal Team Bug source: Exploratory - Critical User Impact Device used: iOS 26.5/iPhone 13 App Component: Other
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Staging-only + iOS-only + immediate cold-launch crash points at a native/build change in the 9.4.47 checklist (#97529). Two PRs touch launch-critical native surface; grab the crash stack first to pick between them, then revert.
Primary suspect — #97452 "[No QA] Update iOS build workflows to Xcode 26.6" by mountiny (medium confidence)
Bumps the iOS build toolchain Xcode 26.2 → 26.6 (a 4-release jump). Best fit for an iOS-only + staging-only crash: JS/native source matches production, but the staging .ipa is now built by a different toolchain than the working production build. Large Xcode jumps commonly cause launch-time native failures (dyld "Symbol not found" / "Library not loaded", Swift-runtime linking changes). The PR description itself notes the previous two Xcode bumps each broke the staging deploy. Revert is YAML-only and low risk.
Secondary suspect — #96638 "Fix markdown cursor restore crash on IOU description focus" by x-dev90 (medium confidence)
Only App PR bumping a native dependency: @expensify/react-native-live-markdown 0.1.333 → 0.1.334, which also changed the RNLiveMarkdown pod and the hermes-engine checksum in ios/Podfile.lock. RNLiveMarkdown is a Nitro native module registering HybridObjects at startup; an ABI/codegen mismatch (or the hermes checksum change) can crash immediately on launch.
Recommended action: REVERT (confirm with crash log)
Mobile-Expensify native submodule bumps also landed in this release and remain a possible non-App source; the two App PRs above are the strongest App-side causes.
@JS00001 I tested this locally on iOS and could not reproduce the launch crash. The app launched and remained usable.
I don’t think #96638 is the likely cause because it only bumps @expensify/react-native-live-markdown to 0.1.334 and changes IOU Description/Merchant cancel-focus behavior. The upstream 0.1.334 package diff is web cursor-utils only, with no native iOS source changes.
Could you please share the exact crash logs/stack trace so I can investigate further? Thanks
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.47-7 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-08-08. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
Activity
applause-bot commentedon Jul 31, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/808fb4e2cdb60d2c398b3598fd935ba11cae68017e2c51f23017d9b16eda132f
melvin-bot commentedon Jul 31, 2026
Triggered auto assignment to @JS00001 (
DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.melvin-bot commentedon Jul 31, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Jul 31, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
MelvinBot commentedon Jul 31, 2026
🔍 Deploy Blocker Investigation — iOS launch crash (v9.4.47-0)
Staging-only + iOS-only + immediate cold-launch crash points at a native/build change in the 9.4.47 checklist (#97529). Two PRs touch launch-critical native surface; grab the crash stack first to pick between them, then revert.
Primary suspect — #97452 "[No QA] Update iOS build workflows to Xcode 26.6" by
mountiny(medium confidence)Bumps the iOS build toolchain Xcode 26.2 → 26.6 (a 4-release jump). Best fit for an iOS-only + staging-only crash: JS/native source matches production, but the staging
.ipais now built by a different toolchain than the working production build. Large Xcode jumps commonly cause launch-time native failures (dyld "Symbol not found" / "Library not loaded", Swift-runtime linking changes). The PR description itself notes the previous two Xcode bumps each broke the staging deploy. Revert is YAML-only and low risk.Secondary suspect — #96638 "Fix markdown cursor restore crash on IOU description focus" by
x-dev90(medium confidence)Only App PR bumping a native dependency:
@expensify/react-native-live-markdown0.1.333 → 0.1.334, which also changed theRNLiveMarkdownpod and thehermes-enginechecksum inios/Podfile.lock. RNLiveMarkdown is a Nitro native module registering HybridObjects at startup; an ABI/codegen mismatch (or the hermes checksum change) can crash immediately on launch.Recommended action: REVERT (confirm with crash log)
Pull the stack trace from the Sentry 9.4.47-0 staging release or the Applause crash log:
If no trace is available immediately, revert #97452 first (cleanest, lowest-risk, best fit), then #96638 if the crash persists.
Investigation details
ios/+package.json(a native pod bump).buildIOS.yml:53(DEVELOPER_DIRpin, [No QA] Update iOS build workflows to Xcode 26.6 #97452);ios/Podfile.lock(RNLiveMarkdown 0.1.333 → 0.1.334, hermes checksum, Fix markdown cursor restore crash on IOU description focus #96638).mountiny,lakchote,mjasikowski; Fix markdown cursor restore crash on IOU description focus #96638 —x-dev90,mountiny,suneox.Next Steps: Reply with
@MelvinBot implement thisto open a revert PR for the confirmed suspect, or@MelvinBot <feedback>to refine.x-dev90 commentedon Jul 31, 2026
@JS00001 I tested this locally on iOS and could not reproduce the launch crash. The app launched and remained usable.
I don’t think #96638 is the likely cause because it only bumps
@expensify/react-native-live-markdownto0.1.334and changes IOU Description/Merchant cancel-focus behavior. The upstream0.1.334package diff is web cursor-utils only, with no native iOS source changes.Could you please share the exact crash logs/stack trace so I can investigate further? Thanks
suneox commentedon Jul 31, 2026
I'm also unable to reproduce it on my end. If anyone can reproduce this issue, please feel free to share more information or any logs
cc: @jponikarchuk
jponikarchuk commentedon Jul 31, 2026
@suneox Could you please try to reproduce with this PR Ad-hoc build?
suneox commentedon Jul 31, 2026
I can't run the ad-hoc build because my device UDID hasn't been added to the provisioning profile.
m-natarajan commentedon Jul 31, 2026
@suneox Here's the crash log for this, if it helps with the investigation.
Expensify Crash.txt
mountiny commentedon Jul 31, 2026
Awaiting staging build after the reverts
mountiny commentedon Jul 31, 2026
Still crashing
mountiny commentedon Jul 31, 2026
Fixed
[-]iOS - App crashes upon launch[/-][+][Due for payment 2026-08-08] iOS - App crashes upon launch[/+]melvin-bot commentedon Aug 1, 2026
@mountiny / @JS00001
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.47-7 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-08-08. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]