Mintplex-Labs/anything-llm · error · Error
No valid image generation provider was set. Got
Error message
No valid image generation provider was set. Got: ${provider} What it means
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.
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.
Example fix
// before (.env) # IMAGE_GEN_PROVIDER not set -> 'Got: undefined' // after (.env) IMAGE_GEN_PROVIDER=openai OPEN_AI_KEY=sk-...
Defensive patterns
Strategy: validation
Validate before calling
const IMAGE_PROVIDERS = ['openai','ollama','lemonade','openrouter'];
const p = process.env.IMAGE_GEN_PROVIDER;
if (!p || !IMAGE_PROVIDERS.includes(p)) {
throw new Error(`IMAGE_GEN_PROVIDER '${p}' unsupported. Use one of: ${IMAGE_PROVIDERS.join(', ')}`);
} Type guard
function isValidImageProvider(v) {
return ['openai','ollama','lemonade','openrouter'].includes(v);
} Prevention
- 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.
When it happens
Trigger: 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).
Common situations: 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.
Understand the failure class
Background: "environment variable is not set" and "Missing keys in environment" errors: what missing required env var messages mean and how to fix them — this error's family across 28 libraries.
Related errors
- ENV: No TTS_PROVIDER value found in environment!
- ENV: No valid LLM_PROVIDER value found in environment! Using
- Chroma::Invalid ENV settings
- ChromaCloud::Invalid ENV settings
- No ElevenLabs API key was set.
AI-assisted analysis of Mintplex-Labs/anything-llm@20f6d3546c (2026-08-18).
Data as JSON: /api/errors/10f5f7a62ce29a89.
Report an issue: GitHub.
Appendix: source
Thrown at server/utils/helpers/index.js:353
case "openai":
const { OpenAiImageGenerator } = require("../ImageGenerators/openAi");
return new OpenAiImageGenerator();
case "ollama":
const { OllamaImageGenerator } = require("../ImageGenerators/ollama");
return new OllamaImageGenerator();
case "lemonade":
const { LemonadeImageGenerator } = require("../ImageGenerators/lemonade");
return new LemonadeImageGenerator();
case "localai":
const { LocalAiImageGenerator } = require("../ImageGenerators/localAi");
return new LocalAiImageGenerator();
case "openrouter":
const {
OpenRouterImageGenerator,
} = require("../ImageGenerators/openRouter");
return new OpenRouterImageGenerator();
default:
throw new Error(
`No valid image generation provider was set. Got: ${provider}`
);
}
}
/**
* Returns the LLMProviderClass - this is a helper method to access static methods on a class
* @param {{provider: string | null} | null} params - Initialize params for LLMs provider
* @returns {BaseLLMProviderClass}
*/
function getLLMProviderClass({ provider = null } = {}) {
switch (provider) {
case "openai":
const { OpenAiLLM } = require("../AiProviders/openAi");
return OpenAiLLM;
case "azure":
const { AzureOpenAiLLM } = require("../AiProviders/azureOpenAi");
return AzureOpenAiLLM;View on GitHub (pinned to 20f6d3546c)