{"record":{"id":"329dee34fa800e22","repo":"usebruno/bruno","slug":"providerlabel-def-providerid-aipreferences-ap","errorCode":null,"errorMessage":"${providerLabel(def.providerId, aiPreferences)} API key is not configured. Add it in Preferences > AI.","messagePattern":"(.+?) API key is not configured\\. Add it in Preferences > AI\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/bruno-electron/src/ipc/ai/providers.js","lineNumber":218,"sourceCode":"};\n\n/**\n * Resolve a Bruno model id to a vercel-ai SDK model instance.\n * Throws if the provider isn't configured (no key) or the model is unknown.\n */\nconst getModel = (modelId, { aiPreferences, getApiKey }) => {\n  const def = resolveModelDefinition(modelId, aiPreferences);\n  if (!def) throw new Error(`Unknown model: ${modelId}`);\n\n  const providerConfig = aiPreferences?.providers?.[def.providerId];\n  if (!providerConfig?.enabled) {\n    throw new Error(`${providerLabel(def.providerId, aiPreferences)} is not enabled. Enable it in Preferences > AI.`);\n  }\n\n  const isCompat = isOpenAiCompatibleProviderId(def.providerId);\n  const apiKey = getApiKey(def.providerId);\n  if (!apiKey && !isCompat) {\n    throw new Error(`${providerLabel(def.providerId, aiPreferences)} API key is not configured. Add it in Preferences > AI.`);\n  }\n\n  if (isCompat && !def.baseURL) {\n    throw new Error(`${providerLabel(def.providerId, aiPreferences)} is missing a Base URL. Set one in Preferences > AI.`);\n  }\n\n  const sdk = getSdk({ providerId: def.providerId, apiKey, baseURL: def.baseURL });\n  if (isOpenAiCompatibleProviderId(def.providerId)) return sdk.chat(def.sdkModelId);\n  return sdk(def.sdkModelId);\n};\n\n/**\n * List models that are usable right now (provider enabled + key configured + model not disabled).\n */\nconst getAvailableModels = ({ aiPreferences, hasApiKey }) => {\n  const out = [];\n  for (const model of listModels(aiPreferences)) {\n    const providerConfig = aiPreferences?.providers?.[model.provider];","sourceCodeStart":200,"sourceCodeEnd":236,"githubUrl":"https://github.com/usebruno/bruno/blob/9bdd81c7bdc57006e5f5ebffb79321a8d979f712/packages/bruno-electron/src/ipc/ai/providers.js#L200-L236","documentation":"Error \"${providerLabel(def.providerId, aiPreferences)} API key is not configured. Add it in Preferences > AI.\" thrown in usebruno/bruno.","triggerScenarios":"Thrown at packages/bruno-electron/src/ipc/ai/providers.js:218 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the provider's API key in Preferences > AI, then retry."],"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"}