Skip to content

[Due for payment 2026-11-16] Splash screen-Splash screen appears when opening device control panel #105430

Open

Description

@applause-bot

If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.


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:

  1. Sign in to ND
  2. Swipe down from the top to open device's control panel
  3. 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

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome Safari

Screenshots/Videos

Bug7300013_1793310321508.splash_screen.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Alberto Gutierrez
Bug ID: 7300013

Issue OwnerCurrent Issue Owner: @daledah

Activity

  1. applause-bot commented on Oct 29, 2026

    @applause-bot
    Author

    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

  2. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 29, 2026
  3. melvin-bot commented on Oct 29, 2026

    @melvin-bot

    Triggered auto assignment to @Beamanator (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

  4. melvin-bot commented on Oct 29, 2026

    @melvin-bot

    💬 A slack conversation has been started in #expensify-open-source

  5. github-actions commented on Oct 29, 2026

    @github-actions
    Contributor

    👋 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:

    1. Identify the pull request that introduced this issue and revert it.
    2. Find someone who can quickly fix the issue.
    3. Fix the issue yourself.
  6. MelvinBot commented on Oct 29, 2026

    @MelvinBot
    Contributor

    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 sceneDidEnterBackground and hide it in sceneWillEnterForeground, in both repos.

    Investigation details

    App-side code (on production since 9.5.24-8):

    Why the submodule bump is the likely source:

    • 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.

    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

  7. albertodege commented on Oct 29, 2026

    @albertodege

    This issue is repro on all PRs in the current deployment checklist.

  8. OlGierd03 commented on Oct 30, 2026

    @OlGierd03
    Contributor

    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

  9. Beamanator commented on Oct 30, 2026

    @Beamanator
    Contributor

    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

  10. 14 remaining items

  11. daledah commented on Nov 4, 2026

    @daledah
    Contributor

    I assigned my self since i was the C+ on the previous PR

  12. changed the title [-]Splash screen-Splash screen appears when opening device control panel[/-] [+][Due for payment 2026-11-16] Splash screen-Splash screen appears when opening device control panel[/+] on Nov 9, 2026
  13. melvin-bot commented on Nov 9, 2026

    @melvin-bot

    @daledah

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.34-1 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-11-16. 🎊

    The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ 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]

  14. daledah commented on Nov 10, 2026

    @daledah
    Contributor

    Contributor+ Checklist:

    • [Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.

      Link to the comment on the PR: N/A, improvement

    • [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.

      Link to discussion:

    • [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

    Regression Test Proposal

    Precondition:

    • signed in on iOS.

    Test:

    1. Swipe down from the top right corner to open Control Center, tap outside it and verify the splash is never shown.
    2. Repeat step 1 with Notification Center and with a system permission prompt (e.g. take a photo with the camera permission not yet granted).
    3. Go Home, open the app switcher and verify the app's card shows the splash with the logo.
    4. Swipe straight from the app into the app switcher and verify the card shows the live app. Go Home, open the app switcher again and verify the card now shows the splash.
    5. Return to the app and verify the content is restored and the app is interactive.
    6. With the keyboard open, go Home, open the app switcher and verify the card shows no content or keyboard.
    7. Return to the app and verify the input is focused again.
    8. In the foreground, take a regular screenshot and verify it captures the content.

    Do we agree 👍 or 👎

  15. milos213 commented on Nov 10, 2026

    @milos213
    Contributor

    This was regression from #100590.
    #100590 was deployed to production on Oct 28. This bug was reported on Oct 29 which is still within 7-day regression window.
    The full payment was handled in #105313.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

BugSomething is broken. Auto assigns a BugZero manager.EngineeringWeeklyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions