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
Splash screen-Splash screen appears when opening device control panel #105430
Version Number: 9.5.26-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:https://test-management.browserstack.com/tc/TC-3720 Email or phone of affected tester (no customers): N/A Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: iPhone 15 iOS 26.6.1 App Component: Other
Action Performed:
Sign in to ND
Swipe down from the top to open device's control panel
Tap outside the panel to return to the app
Expected Result:
Splash screen is not shown
Actual Result:
Splash screen appears when opening device control panel
👋 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.
Why it happens: the privacy overlay shows the BootSplash on sceneWillResignActive. iOS fires that callback whenever the app becomes inactive, including when you open Control Center or Notification Center. It doesn't wait for the app to go to the background.
Recommendation: revert the Mobile-Expensify counterpart, then bump the submodule in App. Reverting the App PR alone won't fix this.
Fix forward: show the overlay in sceneDidEnterBackground and hide it in sceneWillEnterForeground, in both repos.
Investigation details
App-side code (on production since 9.5.24-8):
ios/SceneDelegate.swift:74-80 calls showPrivacyOverlay() on resign-active and hidePrivacyOverlay() on become-active.
ND on iOS is built from the Mobile-Expensify iOS project, not App's ios/ folder.
Production and staging have the same App ios/ code, apart from version strings.
For HybridApp, the only native change between production and staging is the submodule bump (19426f26 → b074b1fd). That fits a bug seen only on staging and only on iOS.
None of the 38 App PRs in the 9.5.26-0 checklist touch the splash screen, AppState handling, or iOS lifecycle code.
Not verified: I couldn't check that the counterpart landed in that submodule range. Someone with Mobile-Expensify access should confirm this by comparing the two SHAs.
Fix-forward trade-off: iOS saves the app-switcher snapshot after the app enters the background, so the overlay still keeps sensitive data off disk. The cost is that while the app is only inactive, its app-switcher card shows live content.
Alternative: if product considers the splash on Control Center to be intended privacy behavior, demote this blocker instead.
Next Steps: Reply with @MelvinBot <your feedback> to refine this analysis.
Likely cause: the HybridApp (iOS) counterpart of #100590, by OlGierd03. It reached staging through the Mobile-Expensify submodule bump.
Both #100590 and its Mobile-Expensify counterpart https://github.com/Expensify/Mobile-Expensify/pull/14105 are already on prod, so neither is part of this deploy. If this really is the cause (I think it's likely), we'll have to address this issue in a follow-up and I don't think this should be a deploy blocker
Activity
applause-bot commentedon Oct 29, 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/34410d0914329a19bc5ce233045d630c0454923114be3e4945043e8d55fa78fa
melvin-bot commentedon Oct 29, 2026
Triggered auto assignment to @Beamanator (
DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.melvin-bot commentedon Oct 29, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Oct 29, 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 Oct 29, 2026
Deploy Blocker Analysis (medium confidence)
Likely cause: the HybridApp (iOS) counterpart of [Payment due @daledah] Cover the UI with the boot splash when the app is backgrounded to prevent sensitive data exposure, by
OlGierd03. It reached staging through the Mobile-Expensify submodule bump.Why it happens: the privacy overlay shows the BootSplash on
sceneWillResignActive. iOS fires that callback whenever the app becomes inactive, including when you open Control Center or Notification Center. It doesn't wait for the app to go to the background.Recommendation: revert the Mobile-Expensify counterpart, then bump the submodule in App. Reverting the App PR alone won't fix this.
Fix forward: show the overlay in
sceneDidEnterBackgroundand hide it insceneWillEnterForeground, in both repos.Investigation details
App-side code (on production since 9.5.24-8):
ios/SceneDelegate.swift:74-80callsshowPrivacyOverlay()on resign-active andhidePrivacyOverlay()on become-active.ios/AppDelegate.swift:110-137loads theBootSplashstoryboard and adds it on top of the window.Why the submodule bump is the likely source:
ios/folder.ios/code, apart from version strings.19426f26→b074b1fd). That fits a bug seen only on staging and only on iOS.Not verified: I couldn't check that the counterpart landed in that submodule range. Someone with Mobile-Expensify access should confirm this by comparing the two SHAs.
History: the first version of this feature, [Payment due @daledah] Cover the UI with the boot splash when the app is backgrounded to prevent sensitive data exposure, was reverted in Revert "[Payment due @daledah] Cover the UI with the boot splash when the app is backgrounded to prevent sensitive data exposure". It caused a similar staging blocker: Workspace - Splash screen appears when trying to connect bank account.
Fix-forward trade-off: iOS saves the app-switcher snapshot after the app enters the background, so the overlay still keeps sensitive data off disk. The cost is that while the app is only inactive, its app-switcher card shows live content.
Alternative: if product considers the splash on Control Center to be intended privacy behavior, demote this blocker instead.
Next Steps: Reply with
@MelvinBot <your feedback>to refine this analysis.view run
albertodege commentedon Oct 29, 2026
This issue is repro on all PRs in the current deployment checklist.
OlGierd03 commentedon Oct 30, 2026
Both #100590 and its Mobile-Expensify counterpart https://github.com/Expensify/Mobile-Expensify/pull/14105 are already on prod, so neither is part of this deploy. If this really is the cause (I think it's likely), we'll have to address this issue in a follow-up and I don't think this should be a deploy blocker
Beamanator commentedon Oct 30, 2026
tested in prod build, 9.5.25-2 https://expensify.slack.com/archives/C01GTK53T8Q/p1793372789816769?thread_ts=1793313077.282449&cid=C01GTK53T8Q - found the exact same thing happen, so looks like this is on prod and i'll at least demote from a deploy blocker