diegosouzapw/OmniRoute · error · Error

t("modelOverrideSaveFailed")

Error message

t("modelOverrideSaveFailed")

What it means

Localized sentinel ('modelOverrideSaveFailed') thrown in saveOverride when the PATCH to /api/model-capability-overrides returns non-ok — e.g. the target model or override key/value was rejected by server-side Zod validation, or the endpoint errored. The overrides list is only refreshed from the response payload on success, so the failed value was not applied.

Solutions

  1. Check the value being patched (numeric overrides like context limits must satisfy the server schema)
  2. Inspect the network tab for the PATCH response body — it usually carries the Zod issue
  3. Retry after correcting the value or the target string
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/app/(dashboard)/dashboard/settings/components/ModelCapabilityOverridesTab.tsx:82 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25). Data as JSON: /api/errors/04c52e7ed23b1418. Report an issue: GitHub.

Appendix: source

Thrown at src/app/(dashboard)/dashboard/settings/components/ModelCapabilityOverridesTab.tsx:82

        setOverrides(payload.overrides || []);
      }
    } catch (error) {
      console.error("Failed to load model capability overrides:", error);
      showStatus("error", t("modelOverrideLoadFailed"));
    } finally {
      setLoading(false);
    }
  }, [showStatus, t]);

  const saveOverride = useCallback(
    async (target: string, key: ModelOverrideKey, value: number | string) => {
      try {
        const response = await fetch("/api/model-capability-overrides", {
          method: "PATCH",
          headers: { "Content-Type": "application/json" },
          body: JSON.stringify({ target, key, value }),
        });
        if (!response.ok) throw new Error(t("modelOverrideSaveFailed"));
        const payload = (await response.json()) as { overrides?: ModelCapabilityOverride[] };
        setOverrides(payload.overrides || []);
        showStatus("success", t("modelOverrideSaved"));
      } catch (error: any) {
        showStatus("error", error?.message || t("modelOverrideSaveFailed"));
      }
    },
    [showStatus, t]
  );

  const removeOverride = useCallback(
    async (target: string, key: ModelOverrideKey) => {
      try {
        const params = new URLSearchParams({ target, key });
        const response = await fetch(`/api/model-capability-overrides?${params.toString()}`, {
          method: "DELETE",
        });
        if (!response.ok) throw new Error(t("modelOverrideRemoveFailed"));

View on GitHub (pinned to a179ffed5b)