{"record":{"id":"65eb4a0e68731af7","repo":"jlcodes99/cockpit-tools","slug":"antigravityinstalledversionbadge-failed-to-compl","errorCode":null,"errorMessage":"[AntigravityInstalledVersionBadge] failed to complete installed version scan:","messagePattern":"\\[AntigravityInstalledVersionBadge\\] failed to complete installed version scan:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"src/components/AntigravityInstalledVersionBadge.tsx","lineNumber":45,"sourceCode":"          setLoaded(!!quickInfo);\n        }\n      } catch (error) {\n        console.warn('[AntigravityInstalledVersionBadge] failed to load installed version:', error);\n        if (!cancelled) {\n          setInfo(null);\n        }\n      }\n\n      try {\n        const fullInfo = await getAntigravityInstalledVersionInfo(runtimeTarget, 'full');\n        if (!cancelled) {\n          if (fullInfo) {\n            setInfo(fullInfo);\n          }\n          setLoaded(true);\n        }\n      } catch (error) {\n        console.warn('[AntigravityInstalledVersionBadge] failed to complete installed version scan:', error);\n        if (!cancelled) {\n          setLoaded(true);\n        }\n      }\n    };\n\n    timer = window.setTimeout(() => {\n      void loadVersion();\n    }, INSTALLED_VERSION_DEFER_MS);\n\n    return () => {\n      cancelled = true;\n      if (timer) {\n        window.clearTimeout(timer);\n      }\n    };\n  }, [runtimeTarget]);\n","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/jlcodes99/cockpit-tools/blob/1ed8b77992d62ca81fabf744deb0839ad361d5bf/src/components/AntigravityInstalledVersionBadge.tsx#L27-L63","documentation":"After the quick scan, `loadVersion` runs a full installed-version scan via the same backend service. If the full scan rejects (deeper filesystem traversal, registry/plist parsing, or IPC error), the warning is logged and `loaded` is set to true so the badge stops retrying, potentially with stale/missing info.","triggerScenarios":"The 'full' scan call in AntigravityInstalledVersionBadge rejects: multiple install locations probed and one throws, corrupted install metadata, or the full-scan Tauri command panics/times out.","commonSituations":"Users with non-standard install locations; beta/stable dual installs where one is broken; slow disks causing command timeouts; backend changes to scan logic after an upgrade.","solutions":["Read the logged error to identify which part of the full scan failed and fix the corresponding path/permission.","Ensure the app handles partial results: keep quick-scan info instead of discarding it when the full scan fails.","Update the backend scan to skip unreadable locations rather than rejecting the whole command.","Reinstall/repair the Antigravity installation to restore complete version metadata."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"if (!info) {\n  console.info('quick scan produced nothing; full scan may fail on broken installs');\n}","typeGuard":"function isFullScanResult(v: unknown): v is { version: string; locations: string[] } {\n  return typeof v === 'object' && v !== null && 'version' in v;\n}","tryCatchPattern":"try {\n  const fullInfo = await getAntigravityInstalledVersionInfo(runtimeTarget, 'full');\n  if (fullInfo) setInfo(fullInfo);\n} catch (error) {\n  console.warn('full scan failed, keeping quick-scan info:', error);\n} finally {\n  setLoaded(true);\n}","preventionTips":["Preserve quick-scan results instead of discarding them when the full scan fails","Make the backend skip unreadable install locations rather than rejecting","Alert on repeated full-scan failures to detect corrupted installs"],"tags":["tauri","ipc","version-scan","filesystem"],"backgroundTag":"tauri-command-invocation-failed","analyzedSha":"1ed8b77992d62ca81fabf744deb0839ad361d5bf","analyzedAt":"2026-09-05T09:51:41.178Z","contentChangedAt":"2026-09-05T09:51:41.178Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}