{"record":{"id":"5d0108aea8275146","repo":"usebruno/bruno","slug":"unknown-ai-provider-providerid-5d0108","errorCode":null,"errorMessage":"Unknown AI provider: ${providerId}","messagePattern":"Unknown AI provider: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/bruno-electron/src/ipc/ai/providers.js","lineNumber":103,"sourceCode":"  apiKeyPlaceholder: 'sk-...',\n  apiKeyHelpUrl: null,\n  isCustom: true,\n  endpointId: endpoint.id,\n  baseURL: endpoint.baseURL || ''\n});\n\nconst getSdk = ({ providerId, apiKey, baseURL }) => {\n  const isCompat = isOpenAiCompatibleProviderId(providerId);\n  const effectiveKey = isCompat && !apiKey ? '' : apiKey;\n  const key = sdkCacheKey({ providerId, apiKey: effectiveKey, baseURL });\n  let sdk = sdkCache.get(key);\n  if (sdk) return sdk;\n\n  if (isCompat) {\n    sdk = createOpenAI({ apiKey: effectiveKey, baseURL });\n  } else {\n    const provider = PROVIDERS[providerId];\n    if (!provider) throw new Error(`Unknown AI provider: ${providerId}`);\n    sdk = provider.createSdk({ apiKey });\n  }\n\n  sdkCache.set(key, sdk);\n  return sdk;\n};\n\nconst clearSdkCache = () => {\n  sdkCache.clear();\n};\n\nconst listProviders = (aiPreferences) => {\n  const builtIn = Object.values(PROVIDERS).map((p) => ({\n    id: p.id,\n    label: p.label,\n    apiKeyPlaceholder: p.apiKeyPlaceholder,\n    apiKeyHelpUrl: p.apiKeyHelpUrl,\n    isCustom: false","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/usebruno/bruno/blob/9bdd81c7bdc57006e5f5ebffb79321a8d979f712/packages/bruno-electron/src/ipc/ai/providers.js#L85-L121","documentation":"Error \"Unknown AI provider: ${providerId}\" thrown in usebruno/bruno.","triggerScenarios":"Thrown at packages/bruno-electron/src/ipc/ai/providers.js:103 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a provider id from the supported provider list.","Check spelling/configuration of the provider in preferences."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9bdd81c7bdc57006e5f5ebffb79321a8d979f712","analyzedAt":"2026-08-13T04:09:25.751Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}