Skip to content

[Due for payment 2026-10-30] Web - Home tab renders in the background and slows opening reports #104081

Closed

Description

@rlinoz

Problem

On web, the Home tab continues rendering while another tab is active. Its For You, Your Spend, and Upcoming Travel sections subscribe to large Onyx collections, so opening a report from Spend triggers unnecessary background renders. According to the linked PR, this adds approximately 100ms to opening a report on a large Windows account.

Steps to reproduce

  1. Open the web app with a large account and visit Home.
  2. Switch to Spend and open an expense report.
  3. Profile React rendering and observe Home sections rendering despite Home being hidden.

Expected behavior

Home should not render while another tab is focused. When returning to Home, it should display the latest data, and its initial loading spinner should continue working. Native behavior should remain unchanged.

Proposed fix

Wrap Home in the existing web FreezeWrapper, outside the lazy-load Suspense boundary, following the Search tab pattern. On web, freezeOnBlur currently hides the tab without stopping React renders.

Related PR

#104078

Validation

Verify Home stops rendering while inactive, refreshes its data when revisited after approving or paying a report, and loads normally when navigating to Home after reloading on Spend. Repeat relevant navigation checks offline and verify there are no console errors. These checks are based on the PR; they have not been independently performed for this issue.

Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. changed the title [-]Web - Home tab renders in the background and slows opening reports[/-] [+][Due for payment 2026-10-30] Web - Home tab renders in the background and slows opening reports[/+] on Oct 23, 2026
  2. melvin-bot commented on Oct 23, 2026

    @melvin-bot

    @brunovjk

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.18-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-10-30. 🎊

    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]

  3. melvin-bot commented on Oct 26, 2026

    @melvin-bot

    @brunovjk Whoops! This issue is 2 days overdue. Let's get this updated quick!

  4. brunovjk commented on Oct 27, 2026

    @brunovjk
    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
      Link to the comment on the Issue: N/A

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

    Test:

    1. Open the app on web and go to the Home tab. Note the data in For You, Your Spend and Upcoming Travel.
    2. Go to the Spend tab and open any expense report.
    3. Go back to the Home tab.
    4. Verify Home looks the same as before.
    5. On the Spend tab, approve or pay a report, then go back to Home. Verify the Your Spend totals and For You counts update.
    6. Reload the app on the Spend tab (for example /search), then click the Home tab. Verify the loading spinner shows briefly and Home loads normally.

    Do we agree 👍 or 👎

  5. 7 remaining items

  6. melvin-bot commented on Oct 29, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  7. melvin-bot commented on Oct 29, 2026

    @melvin-bot

    Payment Summary

    Resolving PRs:

    BugZero Checklist (@mallenexpensify)

    • I have confirmed assignees, roles, and Upwork contracts look correct
    • I have paid out Upwork contracts / manual NewDot requests
    • [BugZero Assignee] I have created a GH issue for creating/updating the regression test once above steps have been agreed upon
  8. mountiny commented on Nov 2, 2026

    @mountiny
    Contributor

    @nkdengineer can you check if your fix to the theme change covered that regression?

  9. nkdengineer commented on Nov 2, 2026

    @nkdengineer
    Contributor

    @mountiny Yes, it's fixed in the adhoc build here

  10. mountiny commented on Nov 2, 2026

    @mountiny
    Contributor

    Thanks!

  11. mallenexpensify commented on Nov 3, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor+: @brunovjk due $100 via NewDot

    I'm assuming the above is correct cuz of the regression, also commented on the issue that was created from the regression and mentioned it shouldn't be due payment. @nkdengineer @mountiny comment here and/or there, if needeedf.

  12. nkdengineer commented on Nov 3, 2026

    @nkdengineer
    Contributor

    @mallenexpensify The original PR for this issue was deployed to production on Oct 23, and I'm not the author/C+ of this issue. My issue was reported in Slack here, and we created it as a normal issue. Should my issue be treated as a normal issue instead?

  13. brunovjk commented on Nov 3, 2026

    @brunovjk
    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:
      Link to the comment on the Issue:

    • [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:

    Web account with many reports, permission to approve/pay, Home chart data and an empty-state card; React profiling available.

    Test:

    1. Load Home, switch to Spend, and profile opening a report. Verify inactive Home sections do not render.
    2. Approve/pay a report from Spend; return to Home and verify totals and counts refresh.
    3. Switch Light ↔ Dark in Preferences; return to Home and verify all text uses the selected theme.
    4. Hover a Home chart, click it, then visit Inbox. Verify no tooltip remains visible.
    5. Reload on Spend, then open Home. Verify loading completes normally.
    6. Repeat navigation offline and verify no console errors.

    Do we agree 👍 or 👎

  14. brunovjk commented on Nov 3, 2026

    @brunovjk
    Contributor

    Summary payment

    Fix: #104078.

    People involved: @TMisiukiewicz — author; @brunovjk — C+ reviewer.

    Production deployment: Deployed on 2026-10-23, confirmed here. Deployment checklist.

    Regressions and follow-ups: The fix introduced the theme regression, tracked in #105469; #105479 is in staging only through 2026-11-03. Related tooltip bug #105357 was fixed by #105388, deployed to production on 2026-11-02. No related reverts found.

    Suggested payment: Apply the 50% penalty per confirmed regression to @brunovjk’s review payment. Payment should remain on hold until seven days after all regression fixes reach production.

    cc: @mallenexpensify

  15. mallenexpensify commented on Nov 4, 2026

    @mallenexpensify
    Contributor

    @brunovjk added to payment summary, @nkdengineer removed. Commented on the other issue @nkdengineer, you'll be paid on that

  16. trjExpensify commented on Nov 6, 2026

    @trjExpensify
    Contributor

    approved $100 for @brunovjk

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

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions