Skip to content

Analytics widgets report "capability not installed" for a 401/dataset-not-found answer — misdiagnosis sends operators to the wrong fix #5663

Description

@os-zhuang

Observed live on os-2gv9x5.objectos.ai (prod tenant), HotCRM Executive Overview: every analytics widget shows

Analytics capability is not installed on this deployment — POST /analytics/dataset/query is unavailable. Install @objectstack/service-analytics and mount AnalyticsServicePlugin to enable it. (server said: Dataset "opportunity_metrics" not found.)

The banner's own parenthetical contradicts its headline. Verified against the live environment:

POST /api/v1/analytics/dataset/query → 401 UNAUTHENTICATED (not 404)

The route is mounted and answering; the analytics capability IS installed. The real condition was the named dataset does not exist in this environment — the installed app.objectstack.hotcrm was 1.3.0 while the datasets (opportunity_metrics, account_metrics, contact_metrics, lead_metrics) ship in 2.2.2. The fix for the environment is a package upgrade; the banner sends an operator to install a server plugin instead — the opposite corner of the system.

The defect

The widget's error mapping collapses two distinct server answers into the capability-missing message:

  • route absent (ROUTE_NOT_FOUND / 404) → "capability not installed" is correct;
  • route present, dataset unknown → should say "Dataset 'X' is not defined in this environment — the installed app may be outdated", ideally naming the app when the dashboard metadata knows it.

The evidence was in the payload the whole time — the code even prints the server's message in parentheses while overriding its meaning in the headline. Same failure shape the cloud-side epic kept finding: a diagnostic that does not observe its own subject.

Where to look

The analytics widget error path in the dashboard plugin (plugin-dashboard / analytics adapter) — wherever the "capability is not installed" copy is chosen. Map by the server's error code/status, not by the endpoint having errored.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatched

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions