different-ai/openwork · error

Failed to load desktop version metadata (${response.status})

Error message

Failed to load desktop version metadata (${response.status}).

What it means

loadDesktopVersionOptions fetches GET /v1/app-version (12s timeout) to populate desktop version settings, and throws this error for any non-ok response when the payload carries no specific message. The settings screen cannot show available desktop versions.

Source

Thrown at ee/apps/den-web/app/(den)/dashboard/_components/org-settings-screen.tsx:312

    setDomainEditModeEnabled(false);
  }, [orgContext]);

  useEffect(() => {
    let cancelled = false;

    async function loadDesktopVersionOptions() {
      setDesktopVersionOptionsBusy(true);
      setDesktopVersionOptionsError(null);

      try {
        const { response, payload } = await requestJson(
          "/v1/app-version",
          { method: "GET" },
          12000,
        );

        if (!response.ok) {
          throw new Error(
            getErrorMessage(
              payload,
              `Failed to load desktop version metadata (${response.status}).`,
            ),
          );
        }

        const metadata = getDesktopVersionMetadata(payload);
        if (!metadata) {
          throw new Error("Desktop version metadata was incomplete.");
        }

        if (cancelled) {
          return;
        }

        setDesktopVersionOptions(metadata.publishedDesktopVersions);
        setDesktopVersionRange({

View on GitHub (pinned to 2b7df46e8a)

Solutions

  1. Check the status: 404 → confirm the server supports /v1/app-version and upgrade a self-hosted instance, 401 → re-sign-in, 5xx → check den-api/version-service logs
  2. Retry after confirming Den is fully deployed and healthy
  3. Verify network/proxy rules allow the request to reach the Den API
  4. If only this panel fails, fall back to default version options and report the server issue
Defensive patterns

Strategy: fallback

Validate before calling

const session = await fetch('/v1/session');
if (!session.ok) { redirectToSignIn(); return; } // avoid a guaranteed 401 on /v1/app-version

Try / catch

try {
  const options = await loadDesktopVersionOptions(signal);
  applyVersionOptions(options);
} catch (err) {
  const msg = err instanceof Error ? err.message : '';
  if (msg.includes('(404)')) console.warn('server does not expose /v1/app-version; using defaults');
  applyDefaultVersionOptions();
}

Prevention

When it happens

Trigger: Non-2xx from /v1/app-version: 401 expired Den session, 404 route absent on an older self-hosted server, 5xx from the version-metadata service, or a gateway 502/504 during a Den deploy.

Common situations: Self-hosted Den server older than the app-version endpoint; org settings screen opened with an expired session; version-metadata backend or its storage temporarily down; network egress blocked in a restricted environment.

Understand the failure class

Background: "API error: {status}" and "HTTP 401/403/404/429/5xx" errors: non-2xx HTTP responses explained — this error's family across 27 libraries.

Related errors


AI-assisted analysis of different-ai/openwork@2b7df46e8a (2026-09-01). Data as JSON: /api/errors/e9685372dd5be3d1. Report an issue: GitHub.