Skip to content

Insight-CSV download is allowed in offline mode #104797

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: V9.5.16-1
Reproducible in staging?: Yes
Reproducible in production?: N/A - new feature, doesn't exist in prod
If this was caught during regression testing, add the test name, ID and link from BrowserStack: #103457
Email or phone of affected tester (no customers): dreamnitethedragon+vegst@gmail.com
Issue reported by: Applause Internal Team
Bug source: Exploratory - Significant User Experience Deterioration
Device used: Redmi note 10s android 13
App Component: User Settings

Action Performed:

Pre-condition: Insightspage beta enable
Have few expense with different categories

  1. Launch app
  2. Open insights
  3. Scroll to Top category
  4. Enable forced offline via 4 finger gesture
  5. Tap 3 dots next to Top category - download as csv

Expected Result:

Offline modal must be shown and user must not be allowed to download in offline.

Actual Result:

User can download in offline successfully.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7293659_1792693922156.Screenrecorder-2026-10-22-23-47-18-44.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Svetlana Lazutkina
Bug ID: 7293659

Activity

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

  3. melvin-bot commented on Oct 22, 2026

    @melvin-bot

    You have been assigned to this deploy blocker because you recently merged this PR: #103457

  4. melvin-bot commented on Oct 22, 2026

    @melvin-bot

    @mountiny @QichenZhu @war-in you have been assigned to this deploy blocker because you reviewed the offending PR: #103457

  5. melvin-bot commented on Oct 22, 2026

    @melvin-bot

    @collectioneur you have been assigned to this deploy blocker because you authored the offending PR: #103457

  6. melvin-bot commented on Oct 22, 2026

    @melvin-bot

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

  7. github-actions commented on Oct 22, 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.
  8. MelvinBot commented on Oct 22, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Investigation

    Recommendation: Demote and close as expected behavior. No revert needed.

    The auto-flagged PR is wrong. The behavior comes from Add local CSV downloads to Insights charts, which made offline download a deliberate choice. That PR has been in production since 9.5.15-3 (2026-10-21), behind the Insights beta. This is not a staging regression.

    • Wrong PR flagged: Migrate chart gestures to Gesture Handler 3 hooks only changes chart gesture hooks. It was linked as the PR under regression test, not as the cause.
    • Intentional: The author said the local approach "allows for offline export of the data that's already available" (comment). The PR's offline test steps expect cached charts to export while offline.
    • Right owners: luacmartins (author), plus huult and mountiny (reviewers). The auto-assigned people for the gesture PR can be unassigned.
    Mechanism

    Permalinks at App 14248f22d4681ece36239f8b97ed95be7edcff12:

    This matches other exports generated on the device, such as company cards (WorkspaceCompanyCardsTableControls.tsx:67-103). Exports that call the server do block offline, such as Search export (useSearchBulkActions.ts:1292-1295).

    If product wants offline download blocked

    This reverses a deliberate decision, so it needs sign-off from JmillsExpensify. The fix is small. In InsightsChartWidget.tsx:96, check useNetwork().isOffline at the top of downloadCSV. If offline, show the offline modal with showDecisionModal, using the Search export pattern, and return. Then update the offline test in tests/ui/InsightsChartWidgetTest.tsx.


    view run

  9. QichenZhu commented on Oct 23, 2026

    @QichenZhu
    Contributor

    @luacmartins @huult could you take a look?

  10. huult commented on Oct 23, 2026

    @huult
    Contributor

    https://github.com/Expensify/App/pull/104272/changes#r4318989174 This is expected behavior. We can download it while offline.

  11. added and removed
    DeployBlockerCashThis issue or pull request should block deployment
    on Oct 23, 2026
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.DailyKSv2Engineering

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions