{"record":{"id":"1d576d0ddc603647","repo":"diegosouzapw/OmniRoute","slug":"no-credentials-configured-for-any-web-fetch-provid","errorCode":null,"errorMessage":"No credentials configured for any web-fetch provider. Add an API key for one of: ${WEB_FETCH_PROVIDERS.join(\", \")}.","messagePattern":"No credentials configured for any web-fetch provider\\. Add an API key for one of: (.+?)\\.","errorType":"http","errorClass":"WebFetchExecutionError","httpStatus":400,"severity":"error","filePath":"src/lib/skills/webFetchExecution.ts","lineNumber":130,"sourceCode":"\nasync function resolveProviderAndCredentials(\n  input: ExecuteWebFetchInput\n): Promise<{ provider: WebFetchProviderId; credentials: WebFetchCredentials }> {\n  const pinnedProvider = resolvePinnedBackend(input);\n  const pinnedCredentials = pinnedProvider ? await resolveCredentials(pinnedProvider) : null;\n  if (pinnedProvider && pinnedCredentials) {\n    return { provider: pinnedProvider, credentials: pinnedCredentials };\n  }\n  if (pinnedProvider && ANONYMOUS_CAPABLE_PROVIDERS.has(pinnedProvider)) {\n    // Anonymous tier: no connection configured (or the credential resolution\n    // came back rate-limited — the anonymous tier does not consume key quota,\n    // so a rate-limited key must not block the anonymous attempt either).\n    return { provider: pinnedProvider, credentials: {} };\n  }\n\n  const auto = await autoSelectProvider();\n  if (!auto) {\n    throw new WebFetchExecutionError(\n      `No credentials configured for any web-fetch provider. Add an API key for one of: ${WEB_FETCH_PROVIDERS.join(\", \")}.`,\n      400\n    );\n  }\n  return auto;\n}\n\nexport async function executeWebFetch(input: ExecuteWebFetchInput): Promise<WebFetchResponse> {\n  if (!input.url || typeof input.url !== \"string\") {\n    throw new WebFetchExecutionError(\"Missing required field: url\", 400);\n  }\n\n  const { provider, credentials } = await resolveProviderAndCredentials(input);\n\n  const result = await handleWebFetch(\n    {\n      url: input.url,\n      format: input.format,","sourceCodeStart":112,"sourceCodeEnd":148,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/skills/webFetchExecution.ts#L112-L148","documentation":"Error \"No credentials configured for any web-fetch provider. Add an API key for one of: ${WEB_FETCH_PROVIDERS.join(\", \")}.\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/skills/webFetchExecution.ts:130 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}