diegosouzapw/OmniRoute · error

API [${response.status}]: ${await response.text().catch(() =

Error message

API [${response.status}]: ${await response.text().catch(() => "error")}

What it means

Error "API [${response.status}]: ${await response.text().catch(() => "error")}" thrown in diegosouzapw/OmniRoute.

Source

Thrown at src/lib/a2a/skills/healthReport.ts:30

type ProviderHealthEntry = {
  state?: string;
  failures?: number;
  retryAfterMs?: number;
  lastFailure?: string | null;
};

const OMNIROUTE_BASE_URL = resolveOmniRouteBaseUrl();
const OMNIROUTE_API_KEY = process.env.OMNIROUTE_API_KEY || "";

async function healthFetch(path: string): Promise<JsonRecord> {
  const url = `${OMNIROUTE_BASE_URL}${path}`;
  const headers: Record<string, string> = {
    "Content-Type": "application/json",
    ...(OMNIROUTE_API_KEY ? { Authorization: `Bearer ${OMNIROUTE_API_KEY}` } : {}),
  };
  const response = await fetch(url, { headers, signal: AbortSignal.timeout(10000) });
  if (!response.ok) {
    throw new Error(`API [${response.status}]: ${await response.text().catch(() => "error")}`);
  }
  return response.json();
}

function asRecord(value: unknown): JsonRecord {
  return value && typeof value === "object" && !Array.isArray(value) ? (value as JsonRecord) : {};
}

function toNumber(value: unknown): number {
  return typeof value === "number" && Number.isFinite(value) ? value : 0;
}

function summarizeProviderHealth(providerHealth: unknown) {
  const entries = Object.entries(asRecord(providerHealth)).map(([provider, raw]) => ({
    provider,
    ...(asRecord(raw) as ProviderHealthEntry),
  }));
  const degraded = entries.filter((entry) => entry.state && entry.state !== "CLOSED");

View on GitHub (pinned to a179ffed5b)

When it happens

Trigger: Thrown at src/lib/a2a/skills/healthReport.ts:30 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/2a62e6aee7fc1a66. Report an issue: GitHub.