jlcodes99/cockpit-tools · warning

[AntigravityRuntime] failed to resolve preferred target:

Error message

[AntigravityRuntime] failed to resolve preferred target:

What it means

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.

Solutions

  1. Read the logged error object to see the underlying cause (invoke name, backend message).
  2. Retry the resolution (e.g. re-mount the component or re-run the effect) once the backend is ready.
  3. Reset the runtime target preference to the default if the saved one references a missing runtime.
  4. Verify the app runs inside the Tauri shell — in a plain browser build the backend command will always fail.

Example fix

// before
.catch((error) => {
  console.warn('[AntigravityRuntime] failed to resolve preferred target:', error);
});
// after
.catch((error) => {
  console.warn('[AntigravityRuntime] failed to resolve preferred target:', error);
  setAntigravityRuntimeTarget(initialTarget); // explicit fallback
});
Defensive patterns

Strategy: fallback

Validate before calling

// Before trusting the preference:
const preferred = localStorage.getItem('antigravityRuntimeTarget');
const valid = preferred == null || ['stable', 'insiders'].includes(preferred);
if (!valid) localStorage.removeItem('antigravityRuntimeTarget');

Type guard

function isRuntimeTarget(v: unknown): v is RuntimeTarget {
  return v === 'stable' || v === 'insiders';
}

Try / catch

getAntigravityRuntimeTarget()
  .then(setAntigravityRuntimeTarget)
  .catch((error) => {
    console.warn('[AntigravityRuntime] failed to resolve preferred target:', error);
    setAntigravityRuntimeTarget(initialTarget);
  });

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of jlcodes99/cockpit-tools@1ed8b77992 (2026-09-05). Data as JSON: /api/errors/cf5404ac72487edb. Report an issue: GitHub.

Appendix: source

Thrown at src/hooks/useAntigravityRuntimeTarget.ts:57

  useEffect(() => {
    if (antigravityRuntimeTargetAutoResolveStarted) {
      return;
    }
    antigravityRuntimeTargetAutoResolveStarted = true;

    const initialTarget = getAntigravityRuntimeTarget();
    void resolvePreferredAntigravityRuntimeTarget(initialTarget)
      .then((preferredTarget) => {
        if (preferredTarget === initialTarget) {
          return;
        }
        if (getAntigravityRuntimeTarget() !== initialTarget) {
          return;
        }
        setAntigravityRuntimeTarget(preferredTarget);
      })
      .catch((error) => {
        console.warn('[AntigravityRuntime] failed to resolve preferred target:', error);
      });
  }, []);

  return target;
}

View on GitHub (pinned to 1ed8b77992)