{"record":{"id":"dba94147b06c0b8b","repo":"diegosouzapw/OmniRoute","slug":"no-search-providers-available-add-an-api-key-for","errorCode":null,"errorMessage":"No search providers available. Add an API key for a search provider (${getAllSearchProviders().map((provider) => provider.id).join(\", \")}) in the dashboard.","messagePattern":"No search providers available\\. Add an API key for a search provider \\((.+?)\\) in the dashboard\\.","errorType":"validation","errorClass":"WebSearchExecutionError","httpStatus":400,"severity":"error","filePath":"src/lib/search/executeWebSearch.ts","lineNumber":151,"sourceCode":"  if (input.provider === \"x-search\" || input.provider === \"xquik-search\") input.search_type = \"x\";\n  const searchType = input.search_type || \"web\";\n\n  if (input.provider) {\n    const explicitProvider = resolveSearchProvider(input.provider);\n    if (!explicitProvider) {\n      throw new WebSearchExecutionError(`Unknown search provider: ${input.provider}`, 400);\n    }\n    if (!supportsSearchType(explicitProvider, searchType)) {\n      throw new WebSearchExecutionError(\n        `Search provider ${input.provider} does not support search_type: ${searchType}`,\n        400\n      );\n    }\n  }\n\n  let providerConfig = selectProvider(input.provider, searchType);\n  if (!providerConfig) {\n    throw new WebSearchExecutionError(\n      input.provider\n        ? `Unknown search provider: ${input.provider}`\n        : `No search providers available. Add an API key for a search provider (${getAllSearchProviders()\n            .map((provider) => provider.id)\n            .join(\", \")}) in the dashboard.`,\n      400\n    );\n  }\n\n  let credentials: Record<string, any> | null = null;\n  let alternateProviderId: string | undefined;\n  let alternateCredentials: Record<string, any> | null = null;\n\n  if (input.provider) {\n    credentials = await resolveSearchCredentials(providerConfig.id);\n    if (\n      !credentials &&\n      providerConfig.authType === \"none\" &&","sourceCodeStart":133,"sourceCodeEnd":169,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/search/executeWebSearch.ts#L133-L169","documentation":"Error \"No search providers available. Add an API key for a search provider (${getAllSearchProviders().map((provider) => provider.id).join(\", \")}) in the dashboard.\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/search/executeWebSearch.ts:151 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"}