{"record":{"id":"cf5404ac72487edb","repo":"jlcodes99/cockpit-tools","slug":"antigravityruntime-failed-to-resolve-preferred-t","errorCode":null,"errorMessage":"[AntigravityRuntime] failed to resolve preferred target:","messagePattern":"\\[AntigravityRuntime\\] failed to resolve preferred target:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/hooks/useAntigravityRuntimeTarget.ts","lineNumber":57,"sourceCode":"  useEffect(() => {\n    if (antigravityRuntimeTargetAutoResolveStarted) {\n      return;\n    }\n    antigravityRuntimeTargetAutoResolveStarted = true;\n\n    const initialTarget = getAntigravityRuntimeTarget();\n    void resolvePreferredAntigravityRuntimeTarget(initialTarget)\n      .then((preferredTarget) => {\n        if (preferredTarget === initialTarget) {\n          return;\n        }\n        if (getAntigravityRuntimeTarget() !== initialTarget) {\n          return;\n        }\n        setAntigravityRuntimeTarget(preferredTarget);\n      })\n      .catch((error) => {\n        console.warn('[AntigravityRuntime] failed to resolve preferred target:', error);\n      });\n  }, []);\n\n  return target;\n}\n","sourceCodeStart":39,"sourceCodeEnd":63,"githubUrl":"https://github.com/jlcodes99/cockpit-tools/blob/1ed8b77992d62ca81fabf744deb0839ad361d5bf/src/hooks/useAntigravityRuntimeTarget.ts#L39-L63","documentation":"The useAntigravityRuntimeTarget hook (src/hooks/useAntigravityRuntimeTarget.ts:57) resolves the user's preferred Antigravity runtime target on mount. If the async resolution promise rejects, the .catch logs a console.warn '[AntigravityRuntime] failed to resolve preferred target:' with the error and leaves the target at its initial value. It is a non-fatal warning: the UI keeps the default target instead of the preference.","triggerScenarios":"On component mount, the backend command backing getAntigravityRuntimeTarget()/preference resolution rejects — e.g. Tauri invoke failure, backend not ready yet, or persisted preference referencing a missing runtime — and the promise rejects before setAntigravityRuntimeTarget runs.","commonSituations":"App started before the backend service initialized; saved runtime preference points at an uninstalled Antigravity version; web (non-Tauri) build where invoke is unavailable; transient IPC error.","solutions":["Read the logged error object to see the underlying cause (invoke name, backend message).","Retry the resolution (e.g. re-mount the component or re-run the effect) once the backend is ready.","Reset the runtime target preference to the default if the saved one references a missing runtime.","Verify the app runs inside the Tauri shell — in a plain browser build the backend command will always fail."],"exampleFix":"// before\n.catch((error) => {\n  console.warn('[AntigravityRuntime] failed to resolve preferred target:', error);\n});\n// after\n.catch((error) => {\n  console.warn('[AntigravityRuntime] failed to resolve preferred target:', error);\n  setAntigravityRuntimeTarget(initialTarget); // explicit fallback\n});","handlingStrategy":"fallback","validationCode":"// Before trusting the preference:\nconst preferred = localStorage.getItem('antigravityRuntimeTarget');\nconst valid = preferred == null || ['stable', 'insiders'].includes(preferred);\nif (!valid) localStorage.removeItem('antigravityRuntimeTarget');","typeGuard":"function isRuntimeTarget(v: unknown): v is RuntimeTarget {\n  return v === 'stable' || v === 'insiders';\n}","tryCatchPattern":"getAntigravityRuntimeTarget()\n  .then(setAntigravityRuntimeTarget)\n  .catch((error) => {\n    console.warn('[AntigravityRuntime] failed to resolve preferred target:', error);\n    setAntigravityRuntimeTarget(initialTarget);\n  });","preventionTips":["Reset runtime target preferences after uninstalling/reinstalling Antigravity.","Only invoke backend commands inside the Tauri shell; guard isTauri() in web builds.","Delay preference resolution until backend services report ready."],"tags":["typescript","react","tauri","runtime-target","graceful-degradation"],"backgroundTag":"runtime-target-resolution-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"}