{"record":{"id":"9f59275bd54f5467","repo":"Budibase/budibase","slug":"knowledge-base-name-already-exists","errorCode":null,"errorMessage":"Knowledge base name already exists","messagePattern":"Knowledge base name already exists","errorType":"http","errorClass":"HTTPError","httpStatus":400,"severity":"error","filePath":"packages/server/src/sdk/workspace/ai/knowledgeBase/crud.ts","lineNumber":55,"sourceCode":"    return undefined\n  }\n  return result\n}\n\nconst ensureUniqueName = async (\n  name: string,\n  currentId?: string\n): Promise<void> => {\n  const knowledgeBases = await fetch()\n  const normalizedName = normalizeKnowledgeBaseName(name)\n  const duplicate = knowledgeBases.find(\n    knowledgeBase =>\n      knowledgeBase._id !== currentId &&\n      normalizeKnowledgeBaseName(knowledgeBase.name) === normalizedName\n  )\n\n  if (duplicate) {\n    throw new HTTPError(\"Knowledge base name already exists\", 400)\n  }\n}\n\nexport async function create(\n  config: CreateKnowledgeBaseRequest\n): Promise<KnowledgeBase> {\n  const db = context.getWorkspaceDB()\n  const knowledgeBaseType = config.type\n  await ensureUniqueName(config.name)\n\n  let newConfig: KnowledgeBase\n  let createdGeminiStoreId: string | undefined\n  switch (knowledgeBaseType) {\n    case KnowledgeBaseType.GEMINI: {\n      const googleFileStoreId = await createGeminiFileStore(config.name.trim())\n      createdGeminiStoreId = googleFileStoreId\n      newConfig = {\n        _id: docIds.generateKnowledgeBaseID(),","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/Budibase/budibase/blob/a81a902e9a8fe55b467d106765f6638f12e35c49/packages/server/src/sdk/workspace/ai/knowledgeBase/crud.ts#L37-L73","documentation":"Error \"Knowledge base name already exists\" thrown in Budibase/budibase.","triggerScenarios":"Thrown at packages/server/src/sdk/workspace/ai/knowledgeBase/crud.ts:55 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":"a81a902e9a8fe55b467d106765f6638f12e35c49","analyzedAt":"2026-08-29T01:03:10.972Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}