{"record":{"id":"10f5f7a62ce29a89","repo":"Mintplex-Labs/anything-llm","slug":"no-valid-image-generation-provider-was-set-got","errorCode":null,"errorMessage":"No valid image generation provider was set. Got: ${provider}","messagePattern":"No valid image generation provider was set\\. Got: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":500,"severity":"error","filePath":"server/utils/helpers/index.js","lineNumber":353,"sourceCode":"    case \"openai\":\n      const { OpenAiImageGenerator } = require(\"../ImageGenerators/openAi\");\n      return new OpenAiImageGenerator();\n    case \"ollama\":\n      const { OllamaImageGenerator } = require(\"../ImageGenerators/ollama\");\n      return new OllamaImageGenerator();\n    case \"lemonade\":\n      const { LemonadeImageGenerator } = require(\"../ImageGenerators/lemonade\");\n      return new LemonadeImageGenerator();\n    case \"localai\":\n      const { LocalAiImageGenerator } = require(\"../ImageGenerators/localAi\");\n      return new LocalAiImageGenerator();\n    case \"openrouter\":\n      const {\n        OpenRouterImageGenerator,\n      } = require(\"../ImageGenerators/openRouter\");\n      return new OpenRouterImageGenerator();\n    default:\n      throw new Error(\n        `No valid image generation provider was set. Got: ${provider}`\n      );\n  }\n}\n\n/**\n * Returns the LLMProviderClass - this is a helper method to access static methods on a class\n * @param {{provider: string | null} | null} params - Initialize params for LLMs provider\n * @returns {BaseLLMProviderClass}\n */\nfunction getLLMProviderClass({ provider = null } = {}) {\n  switch (provider) {\n    case \"openai\":\n      const { OpenAiLLM } = require(\"../AiProviders/openAi\");\n      return OpenAiLLM;\n    case \"azure\":\n      const { AzureOpenAiLLM } = require(\"../AiProviders/azureOpenAi\");\n      return AzureOpenAiLLM;","sourceCodeStart":335,"sourceCodeEnd":371,"githubUrl":"https://github.com/Mintplex-Labs/anything-llm/blob/20f6d3546c1938bfea1ad304f58a592dddcc5948/server/utils/helpers/index.js#L335-L371","documentation":"Thrown by getImageGeneratorProvider() in server/utils/helpers/index.js when the IMAGE_GEN_PROVIDER environment variable matches none of the supported cases: openai, ollama, lemonade, openrouter. Unlike getLLMProvider there is no default provider, so any other value (including unset, printed as 'Got: undefined') aborts image generation setup.","triggerScenarios":"Calling an image-generation flow (e.g. the agents/image tool) with IMAGE_GEN_PROVIDER unset, misspelled, or set to a generator this build does not include (e.g. 'stablediffusion' on a version where only the four cases above exist).","commonSituations":"Image generation newly enabled in system settings without setting the env var; provider renamed/added between versions so an old value no longer matches; .env updated but server not restarted.","solutions":["Set IMAGE_GEN_PROVIDER in server/.env to one of: openai, ollama, lemonade, openrouter, and set the matching credentials (e.g. OPEN_AI_KEY, OLLAMA_BASE_PATH, OPENROUTER_API_KEY).","Restart the server/container after editing .env so process.env.IMAGE_GEN_PROVIDER is populated.","Verify the value inside the runtime: console.log(process.env.IMAGE_GEN_PROVIDER) or docker exec <container> printenv IMAGE_GEN_PROVIDER.","If you don't need image generation, avoid the code path that calls getImageGeneratorProvider() instead of leaving it unset-but-invoked."],"exampleFix":"// before (.env)\n# IMAGE_GEN_PROVIDER not set -> 'Got: undefined'\n\n// after (.env)\nIMAGE_GEN_PROVIDER=openai\nOPEN_AI_KEY=sk-...","handlingStrategy":"validation","validationCode":"const IMAGE_PROVIDERS = ['openai','ollama','lemonade','openrouter'];\nconst p = process.env.IMAGE_GEN_PROVIDER;\nif (!p || !IMAGE_PROVIDERS.includes(p)) {\n  throw new Error(`IMAGE_GEN_PROVIDER '${p}' unsupported. Use one of: ${IMAGE_PROVIDERS.join(', ')}`);\n}","typeGuard":"function isValidImageProvider(v) {\n  return ['openai','ollama','lemonade','openrouter'].includes(v);\n}","tryCatchPattern":null,"preventionTips":["Set IMAGE_GEN_PROVIDER together with its credentials in one .env edit, then restart.","Guard image-generation UI/actions behind a feature check so unset provider disables the feature instead of throwing mid-request."],"tags":["env","image-generation","provider-selection","configuration"],"backgroundTag":"missing-env-var","analyzedSha":"20f6d3546c1938bfea1ad304f58a592dddcc5948","analyzedAt":"2026-08-18T10:02:21.017Z","contentChangedAt":"2026-08-18T10:02:21.017Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}