diegosouzapw/OmniRoute · error · WebFetchExecutionError

No credentials configured for any web-fetch provider. Add an

Error message

No credentials configured for any web-fetch provider. Add an API key for one of: ${WEB_FETCH_PROVIDERS.join(", ")}.

What it means

Error "No credentials configured for any web-fetch provider. Add an API key for one of: ${WEB_FETCH_PROVIDERS.join(", ")}." thrown in diegosouzapw/OmniRoute.

Source

Thrown at src/lib/skills/webFetchExecution.ts:130

async function resolveProviderAndCredentials(
  input: ExecuteWebFetchInput
): Promise<{ provider: WebFetchProviderId; credentials: WebFetchCredentials }> {
  const pinnedProvider = resolvePinnedBackend(input);
  const pinnedCredentials = pinnedProvider ? await resolveCredentials(pinnedProvider) : null;
  if (pinnedProvider && pinnedCredentials) {
    return { provider: pinnedProvider, credentials: pinnedCredentials };
  }
  if (pinnedProvider && ANONYMOUS_CAPABLE_PROVIDERS.has(pinnedProvider)) {
    // Anonymous tier: no connection configured (or the credential resolution
    // came back rate-limited — the anonymous tier does not consume key quota,
    // so a rate-limited key must not block the anonymous attempt either).
    return { provider: pinnedProvider, credentials: {} };
  }

  const auto = await autoSelectProvider();
  if (!auto) {
    throw new WebFetchExecutionError(
      `No credentials configured for any web-fetch provider. Add an API key for one of: ${WEB_FETCH_PROVIDERS.join(", ")}.`,
      400
    );
  }
  return auto;
}

export async function executeWebFetch(input: ExecuteWebFetchInput): Promise<WebFetchResponse> {
  if (!input.url || typeof input.url !== "string") {
    throw new WebFetchExecutionError("Missing required field: url", 400);
  }

  const { provider, credentials } = await resolveProviderAndCredentials(input);

  const result = await handleWebFetch(
    {
      url: input.url,
      format: input.format,

View on GitHub (pinned to a179ffed5b)

When it happens

Trigger: Thrown at src/lib/skills/webFetchExecution.ts:130 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/1d576d0ddc603647. Report an issue: GitHub.