Skip to content

fix(frontend): failed upcoming purchases fetch renders as empty state #713

Open

Description

@cristim

Summary

Home shows "No upcoming scheduled purchases" when the /api/dashboard/upcoming request fails. The request is also not scoped to the selected filter chips.

Where

Reviewed commit b50ca38: frontend/src/dashboard.ts:177,182,214,436-437.

Failure scenario

The upcoming endpoint returns an error. The widget renders the normal empty state, so the user concludes nothing is scheduled when in fact the data failed to load. Separately, the fetch ignores the account/provider chips, so the widget can disagree with the rest of the page. Verified live.

Suggested fix

Render an inline error with a Retry button on failure, and pass the current scope to the request.

Severity

High: a failed load is presented as "nothing scheduled", hiding upcoming spend.

Reviewer ID: UX-05 (usab H5)
Found by the 2026-10-08 review fleet.

Activity

  1. cristim commented on Oct 20, 2026

    @cristim
    MemberAuthor

    #1186 (aab65a57) fixed the first half: a failed upcoming fetch now shows an inline error with Retry instead of the empty state. Still open: scoping the fetch to the provider/account chips. getUpcomingPurchases (internal/api/handler_dashboard.go) takes no filter parameters and scopes by session only, so this needs backend filter parameters plus the frontend passing the chip state.

  2. IAmJSD commented on Oct 24, 2026

    @IAmJSD
    Collaborator

    Claiming: working on this

  3. self-assigned this
    on Oct 24, 2026
  4. IAmJSD commented on Oct 28, 2026

    @IAmJSD
    Collaborator

    Status update (2026-10-28): the backend half merged in #1555: GET /api/dashboard/upcoming now accepts provider, account_ids and account_id, intersected with the session scope.

    Left: frontend (UI owner): getUpcomingPurchases should send the chip state like getDashboardSummary, and the "account filter does not apply here" note can go.

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions