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

  1. 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).
  2. Restart the server/container after editing .env so process.env.IMAGE_GEN_PROVIDER is populated.
  3. Verify the value inside the runtime: console.log(process.env.IMAGE_GEN_PROVIDER) or docker exec <container> printenv IMAGE_GEN_PROVIDER.
  4. 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

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


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)