{"record":{"id":"0de35aeb7aa24051","repo":"Budibase/budibase","slug":"unsupported-ai-operation-operation","errorCode":null,"errorMessage":"Unsupported AI operation: ${operation}","messagePattern":"Unsupported AI operation: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/server/src/utilities/rowProcessor/utils.ts","lineNumber":59,"sourceCode":"      return ai.translate(row[column!], language!)\n    case AIOperationEnum.CATEGORISE_TEXT:\n      if (!categories) {\n        throw new Error(\n          \"No categories provided for categorise text operation. Please provide categories.\"\n        )\n      }\n      return ai.classifyText(\n        extractTextFromColumns(row, columns!),\n        categories.split(\",\")\n      )\n    case AIOperationEnum.SENTIMENT_ANALYSIS:\n      return ai.sentimentAnalysis(row[column!])\n    case AIOperationEnum.PROMPT:\n      return new ai.LLMRequest().addUserMessage(prompt!)\n    case AIOperationEnum.SEARCH_WEB:\n      return ai.searchWeb(extractTextFromColumns(row, columns!))\n    default:\n      throw new Error(`Unsupported AI operation: ${operation}`)\n  }\n}\n\nasync function runAIOperation(\n  llm: LLMResponse,\n  schema: AIFieldMetadata,\n  row: Row\n) {\n  const request = promptForAIOperation(schema, row)\n  const result = await generateText({\n    model: llm.chat,\n    ...toPrompt(request.messages),\n    providerOptions: llm.providerOptions?.(false),\n  })\n  return result.text\n}\n\n/**","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/Budibase/budibase/blob/a81a902e9a8fe55b467d106765f6638f12e35c49/packages/server/src/utilities/rowProcessor/utils.ts#L41-L77","documentation":"Error \"Unsupported AI operation: ${operation}\" thrown in Budibase/budibase.","triggerScenarios":"Thrown at packages/server/src/utilities/rowProcessor/utils.ts:59 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"}