{"record":{"id":"e9685372dd5be3d1","repo":"different-ai/openwork","slug":"failed-to-load-desktop-version-metadata-respons","errorCode":null,"errorMessage":"Failed to load desktop version metadata (${response.status}).","messagePattern":"Failed to load desktop version metadata \\((.+?)\\)\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"ee/apps/den-web/app/(den)/dashboard/_components/org-settings-screen.tsx","lineNumber":312,"sourceCode":"    setDomainEditModeEnabled(false);\n  }, [orgContext]);\n\n  useEffect(() => {\n    let cancelled = false;\n\n    async function loadDesktopVersionOptions() {\n      setDesktopVersionOptionsBusy(true);\n      setDesktopVersionOptionsError(null);\n\n      try {\n        const { response, payload } = await requestJson(\n          \"/v1/app-version\",\n          { method: \"GET\" },\n          12000,\n        );\n\n        if (!response.ok) {\n          throw new Error(\n            getErrorMessage(\n              payload,\n              `Failed to load desktop version metadata (${response.status}).`,\n            ),\n          );\n        }\n\n        const metadata = getDesktopVersionMetadata(payload);\n        if (!metadata) {\n          throw new Error(\"Desktop version metadata was incomplete.\");\n        }\n\n        if (cancelled) {\n          return;\n        }\n\n        setDesktopVersionOptions(metadata.publishedDesktopVersions);\n        setDesktopVersionRange({","sourceCodeStart":294,"sourceCodeEnd":330,"githubUrl":"https://github.com/different-ai/openwork/blob/2b7df46e8ae1517d64c896c7793d2d52ec845669/ee/apps/den-web/app/(den)/dashboard/_components/org-settings-screen.tsx#L294-L330","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["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","Retry after confirming Den is fully deployed and healthy","Verify network/proxy rules allow the request to reach the Den API","If only this panel fails, fall back to default version options and report the server issue"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"const session = await fetch('/v1/session');\nif (!session.ok) { redirectToSignIn(); return; } // avoid a guaranteed 401 on /v1/app-version","typeGuard":null,"tryCatchPattern":"try {\n  const options = await loadDesktopVersionOptions(signal);\n  applyVersionOptions(options);\n} catch (err) {\n  const msg = err instanceof Error ? err.message : '';\n  if (msg.includes('(404)')) console.warn('server does not expose /v1/app-version; using defaults');\n  applyDefaultVersionOptions();\n}","preventionTips":["Fall back to default/desktop-provided version options when metadata is unavailable","Detect older self-hosted servers via a capability probe before calling newer endpoints","Handle 401 globally with re-auth instead of failing the settings screen","Keep the 12s timeout and show a non-blocking warning rather than a hard failure"],"tags":["http","network","api","versioning"],"backgroundTag":"http-error-response","analyzedSha":"2b7df46e8ae1517d64c896c7793d2d52ec845669","analyzedAt":"2026-09-01T07:59:23.713Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}