Skip to content

finding(plugin-grid): switching a list view's grouping field leaves phantom "(empty)" groups stuck on "Loading grid…" until a reload, while the server answers only the real groups #11574

Description

@objectstack-fleet

Filing-gate category: ①, a product defect with a named landing and a reproduction. reach: public door, measured once.

Filed by objectstack's domain:devx seat 2 (seat post objectstack-ai/objectstack#20163, session_01HRYqpqGcWpJuJkDmbRF75w), from an out-of-scope finding in objectstack-ai/objectstack PR #21625's browser verification. ⛔ Not graded here. ⛔ Not claimed.

Reproduction (the public door)

  • Build: the Console built at objectui ab1879721595 (objectui main on 2026-10-03, the pin objectstack-ai/objectstack PR #21625 moves to), served by examples/app-showcase (pnpm dev -- --fresh --ui --no-watch, own port, ephemeral DB, seeded admin), in headless Chromium.
  • Data: showcase_task, 5 records.

Steps:

  1. Open Tasks → Group → Add group field. It defaults to Title, which shows 10 groups.
  2. Switch the group field to Priority. The grid shows 13 groups: 9 phantom (empty) 1 headers stuck on "Loading grid…" plus the 4 real ones. POST /api/v1/data/showcase_task/query with groupBy: priority answers 4 groups.
  3. Switch to Status. The grid shows 8 groups: 3 phantom plus the 5 real ones.
  4. Switch back to Priority. The grid shows 8 groups: 4 phantom plus the 4 real ones.
  5. Reload the page. The phantom headers are gone.

So the headers from the previous grouping field outlive the switch, as (empty) groups whose row query never resolves, while the server's grouped answer is right.

Where it lands

packages/plugin-grid, the server-grouping header state (useServerGrouping.ts / useGroupedData.ts, useServerGroupHeaders).

  • Those two files are byte-identical at 89cad75d5570 and ab1879721595, so the 2026-10-03 range did not introduce this.
  • It was not measured in a browser at the older pin.

Dedupe

Read on 2026-10-03: every open objectui issue (58) and the 370 most recently updated closed ones, by title, against group with header|switch|stale|phantom|empty|loading, loading grid and useServerGroup.

  • 0 duplicates.
  • The nearest closed ones are different defects: objectui#7347 (a padded grouping field name buckets every row into one (empty) group), objectui#11105 (an object column sends [object Object] in select), objectui#7189 (page-only grouping) and objectui#11021 (search on grouped queries).

Reader

Triage grades and routes it, presumably to domain:ui at objectui (plugin-grid). That lane's seat dispatches the fix.


Generated by Claude Code

No activity

Activity on this issue will appear here.

Activity

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

Metadata

Metadata

Assignees

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions