Skip to content

console: StorageUsageBanner probes the cloud-only GET /api/v1/usage/storage on every shell mount, so every page load logs a 404 on a non-cloud deployment #11002

Description

@objectstack-fleet

Ruled: 5890841811 · letter A — cloud declares features.storageUsage derived from mounting the endpoint plugin; objectui reads it default-off, one boolean for both banners · 2026-09-29T13:04Z
Blocked-by: objectstack-ai/cloud#2481

Symptom

On a self-hosted or open-source objectstack runtime, every console page load issues GET /api/v1/usage/storage and gets 404. The browser console shows Failed to load resource: the server responded with a status of 404 on every navigation that remounts the shell.

Mechanism

  • StorageUsageBanner (objectui#10439, landed as feat(app-shell): the environment admin's storage-capacity banner, from the served verdict (objectui#10439) #10910) is rendered unconditionally in packages/app-shell/src/console/ConsoleShell.tsx.
  • Its hook useStorageUsageReading defaults to enabled = true and calls readStorageUsage(), which fetches ${apiBase}/usage/storage.
  • The endpoint is served only by cloud's StorageUsageEndpointPlugin, as objectui#10439 itself records.
  • objectstack's own runtime mounts no such route, and /api/v1/discovery advertises none. The hook's .catch swallows the failure, so the banner correctly renders nothing, but the request is made and fails on every mount.

Reproduction

  1. Boot objectstack's showcase at objectui pin dd3f7e1be356 (objectstack dev).
  2. Sign in and open any console page.
  3. The network log shows GET /api/v1/usage/storage → 404, repeated on each shell mount.

Expected

The banner only asks when the runtime serves the reading: gate the hook on something the server advertises (discovery or runtime config), the way a capability-gated surface does. A deployment without the endpoint then issues no request. Machine-readable surfaces here should neither lie nor be guessed at.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions