Skip to content

"My grid shows 0 rows" ​

A core.grid renders empty and there is no error message. Work through this in order.

1. Is metadata.dataSource set, and on the page? ​

Open the page file. The top level (sibling of definition, not inside it, not on any block) must have:

json
"metadata": { "dataSource": "oeq-equipment-provider" }

core.grid has no data property. If dataSource is missing, on the grid block, or inside definition, the grid gets nothing.

2. Does the string match a provider name exactly? ​

There must be a file spk-assembly/metadata/provider/*.json whose name field is character-for-character equal to the dataSource string. Check for a typo, a plural, a stray dash.

bash
erp plugin test spk-assembly

catches this as PAGE-DS-001 and prints the mismatched name.

3. Does the provider's basePath actually return rows? ​

For an entity you own it should be /api/v1/entities/<entityName>/records. Test it directly:

bash
erp api get "/api/v1/entities/oeq_equipment/records/query?size=5"
  • Rows come back → the provider path is fine; the problem is wiring (steps 1–2) or filtering (step 4).
  • { "rows": [], "total": 0 } → the table genuinely has no rows. Create one and retry.
  • 404 → wrong basePath.

4. Is an externalFilter hiding everything? ​

If the grid binds externalFilter to a page object, check what's in that object on mount. A stale status: "" or an un-cleared search string can filter out every row. In the mount loader, initialise the filter object to {} or omit problematic keys.

5. Is refreshTrigger stuck? ​

If the grid only ever loads with the filter/refresh value it had at mount, make sure refreshTrigger binds a page value that actually changes (you toggle page.gridRefreshTick after writes), and that the mount loader sets it to a defined initial value (0).

6. Row-level permissions ​

If the grid is empty only for some users, that's row-level security doing its job. Check the user's role and the entity's permission keys.

The fast check ​

bash
# does the raw endpoint the provider points at return data?
erp api get "/api/v1/entities/<entity>/records/query?size=5"

Whatever that returns is what a correctly-wired grid shows. If it has rows and the grid doesn't, the bug is in steps 1–5.

See also ​