Skip to content

[Due for payment 2026-10-09] Android - Home - "Spend over time" section loads infinitelly after expense creation. #102619

Closed

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.4.97-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/projects/2219752/test-runs/76328606/folder/40579099/96594248/1811657036
Email or phone of affected tester (no customers): ibellicotest+3215@gmail.com
Issue reported by: Applause Internal Team
Bug source: Exploratory - Significant User Experience Deterioration
Device used: Motorola MotoG60 / Android 12 (Hybrid app)
App Component: Other

Action Performed:

  1. Open the Expensify app.
  2. Sign up with a new account.
  3. During onboarding, select "Track expenses for my business", "Manage my team´s expenses" or "Submit expenses to my employer.
  4. Navigate to "Home" and scroll down to "Spend over time"
  5. Note that "Chart Unavailable" message is visible, as there are no expenses created yet.
  6. Navigate to workspace chat.
  7. Create a manual expense.
  8. Return to "Home" > "Spend over time"
  9. Note that now, section loads infinitelly.

Expected Result:

Chart should be visible on "Spend over time" section in "Home", after expenses are created.

Actual Result:

"Spend over time" section in "Home", displays infinite loading after expense creation.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7273119_1790740302737.Over.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Julia Ponikarchuk
Bug ID: 7273119

Issue OwnerCurrent Issue Owner: @mkhutornyi

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Sep 30, 2026
  2. applause-bot commented on Sep 30, 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/35bce9fea47effceabd8adbd76c28cd5237bf40e51796a6f31b54bba43e49d01

  3. melvin-bot commented on Sep 30, 2026

    @melvin-bot

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

  4. github-actions commented on Sep 30, 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.
  5. melvin-bot commented on Sep 30, 2026

    @melvin-bot

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

  6. MelvinBot commented on Sep 30, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Investigation

    Result: needs investigation. No App PR in 9.4.97-0 changes the code that decides whether "Spend over time" shows a spinner. Keep DeployBlockerCash for now.

    Low-confidence candidate: Refresh Home data with OpenHomePage by blimpich. It is the only PR in this release that touches src/pages/home, but it does not touch the chart code. A revert is not justified yet.

    Suggested next steps:

    1. Check the tester's logs (ibellicotest+3215@gmail.com, 2026-09-30) for Chart fonts failed to load. Also check whether the month-grouped spend Search request returned.
    2. Try the repro on web and iOS staging. If only Android HybridApp fails, suspect the native side or chart fonts.
    3. If still unclear, test an adhoc build with Refresh Home data with OpenHomePage #102341 reverted.
    Investigation details

    The chart spins in two cases (permalinks at 7d4feda, which includes every PR in the release):

    1. Search data counts as not loaded. useInsightData.ts:33-54 returns LOADING while isSearchDataLoaded is false. That happens when the saved results' type or hash doesn't match the query. Home re-runs the search on focus (useInsightData.ts:88-93). Duplicate in-flight calls are dropped (Search.ts:1282-1314), so one request that never returns spins forever.
    2. Chart fonts never loaded. LineChartContent.tsx:233-239 spins while !fontManager. A font failure (chartFontsCache.ts:102-131) leaves it null. This fits the repro: before the first expense only the empty state renders, so the chart first draws right after the expense is created. The earlier iOS - Home - Spend over time chart loads infinitely had this cause and was fixed by [CP Staging] Patch Skia to fix iOS chart crash and charts stuck loading.

    Why #102341 is low confidence: it calls openHomePage() on Home focus and reconnect (HomePage.tsx:47-57). It does not touch InsightsSection, Search actions, saved results, or charts. It could only cause this if the backend response changes search data, which I can't verify from App code.

    Ruled out: #102409, #102505 (Search page only), #100248, #102398, #101202 (don't change how new expenses update saved search results), #102344 (online onboarding unchanged), #100209 (behavior-neutral refactor), #101735 (theme colors), #94362 (RAM-only key). The production-to-staging compare has no changes to InsightsSection, Charts, Search.ts, SearchUIUtils.ts, or the Skia patch/version.

    Other possible sources: Android HybridApp native changes in this release, or a staging backend change. Either would need an internal investigation.

    Web repro: I tried to reproduce on web, but the test session broke during onboarding, so I have no web result.


    view run · no recording available

  7. mkhutornyi commented on Sep 30, 2026

    @mkhutornyi
    Contributor

    Deploy Blocker #102619 was identified to be related to this PR.

    Checking

  8. melvin-bot commented on Sep 30, 2026

    @melvin-bot

    ⚠️ Looks like this issue was linked to a Deploy Blocker here

    If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

    If a regression has occurred and you are the assigned CM follow the instructions here.

    If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

  9. mkhutornyi commented on Sep 30, 2026

    @mkhutornyi
    Contributor

    I am not able to reproduce on main

    android.mov
  10. AndrewGable commented on Sep 30, 2026

    @AndrewGable
    Contributor

    @mkhutornyi is able to reproduce on staging. Hunting for the issue now.

  11. 9 remaining items

  12. AndrewGable commented on Oct 1, 2026

    @AndrewGable
    Contributor

    @mkhutornyi Yes, keeping open for payment

  13. mkhutornyi commented on Oct 4, 2026

    @mkhutornyi
    Contributor

    Contributor+ Checklist:

    Regression Test Proposal

    Test:

    1. Sign up with a new account.
    2. During onboarding, select "Track expenses for my business", "Manage my team´s expenses" or "Submit expenses to my employer.
    3. Navigate to "Home" and scroll down to "Spend over time"
    4. Note that "Chart Unavailable" message is visible, as there are no expenses created yet.
    5. Navigate to workspace chat.
    6. Create a manual expense.
    7. Return to "Home" > "Spend over time"
    8. Verify that chart is visible on "Spend over time" section in "Home", after expenses are created.

    Do we agree 👍 or 👎

  14. changed the title [-]Android - Home - "Spend over time" section loads infinitelly after expense creation.[/-] [+][Due for payment 2026-10-09] Android - Home - "Spend over time" section loads infinitelly after expense creation.[/+] on Oct 9, 2026
  15. melvin-bot commented on Oct 9, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  16. melvin-bot commented on Oct 9, 2026

    @melvin-bot

    Skipping the payment summary for this issue since all the assignees are employees or vendors. If this is incorrect, please manually add the payment summary SO.

  17. mallenexpensify commented on Oct 13, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor+: @mkhutornyi due $175 via NewDot

    Thx for the quick help here

  18. trjExpensify commented on Oct 15, 2026

    @trjExpensify
    Contributor

    approved $175 for @mkhutornyi

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 productionBugSomething 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