{"record":{"id":"068ce45d8640ace5","repo":"Mintplex-Labs/anything-llm","slug":"no-lemonade-image-generation-model-was-set","errorCode":null,"errorMessage":"No Lemonade image generation model was set.","messagePattern":"No Lemonade image generation model was set\\.","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"critical","filePath":"server/utils/ImageGenerators/lemonade/index.js","lineNumber":9,"sourceCode":"const { parseLemonadeServerEndpoint } = require(\"../../AiProviders/lemonade\");\nconst { BaseImageGenerator } = require(\"../base\");\n\nclass LemonadeImageGenerator extends BaseImageGenerator {\n  constructor() {\n    if (!process.env.IMAGE_GEN_LEMONADE_BASE_PATH)\n      throw new Error(\"No Lemonade image generation base path was set.\");\n    if (!process.env.IMAGE_GEN_MODEL_PREF)\n      throw new Error(\"No Lemonade image generation model was set.\");\n    const { OpenAI: OpenAIApi } = require(\"openai\");\n    super({\n      client: new OpenAIApi({\n        baseURL: parseLemonadeServerEndpoint(\n          process.env.IMAGE_GEN_LEMONADE_BASE_PATH,\n          \"openai\"\n        ),\n        apiKey: process.env.IMAGE_GEN_LEMONADE_API_KEY || null,\n      }),\n      model: process.env.IMAGE_GEN_MODEL_PREF,\n      className: \"LemonadeImageGenerator\",\n    });\n  }\n}\n\nmodule.exports = { LemonadeImageGenerator };\n","sourceCodeStart":1,"sourceCodeEnd":26,"githubUrl":"https://github.com/Mintplex-Labs/anything-llm/blob/526360e320da9d1b36074be5ed64fe76e5bbfbbd/server/utils/ImageGenerators/lemonade/index.js#L1-L26","documentation":"Thrown synchronously in the LemonadeImageGenerator constructor after the base-path check. IMAGE_GEN_MODEL_PREF selects which model Lemonade serves for image generation; without it the OpenAI client would send an undefined model. Note this is a shared variable also used by other image providers, so it must be set whenever any image provider is selected.","triggerScenarios":"Instantiating new LemonadeImageGenerator() when process.env.IMAGE_GEN_MODEL_PREF is unset or empty.","commonSituations":"Selecting Lemonade (or any image provider) without choosing a model; relying on a default that does not exist (Lemonade has no built-in default unlike OpenAI's gpt-image-1); switching providers but clearing the model field; container env missing IMAGE_GEN_MODEL_PREF.","solutions":["Set IMAGE_GEN_MODEL_PREF to a Lemonade-served image model id in .env.","Confirm the model id is actually loaded by your Lemonade server instance.","Restart the server after setting the variable.","Remember IMAGE_GEN_MODEL_PREF is shared across image providers — set it to the id appropriate to the active provider."],"exampleFix":"# before\nIMAGE_GEN_PROVIDER=lemonade\nIMAGE_GEN_LEMONADE_BASE_PATH=http://localhost:8000\n# (no model)\n\n# after\nIMAGE_GEN_PROVIDER=lemonade\nIMAGE_GEN_LEMONADE_BASE_PATH=http://localhost:8000\nIMAGE_GEN_MODEL_PREF=stable-diffusion-xl","handlingStrategy":"validation","validationCode":"function hasImageModel() {\n  return typeof process.env.IMAGE_GEN_MODEL_PREF === 'string'\n    && process.env.IMAGE_GEN_MODEL_PREF.trim().length > 0;\n}\nif (!hasImageModel()) {\n  throw new Error('Set IMAGE_GEN_MODEL_PREF before using image generation.');\n}","typeGuard":"function isImageModelSet() {\n  return !!process.env.IMAGE_GEN_MODEL_PREF && process.env.IMAGE_GEN_MODEL_PREF.trim().length > 0;\n}","tryCatchPattern":"try {\n  generator = new LemonadeImageGenerator();\n} catch (e) {\n  if (/No Lemonade image generation model/.test(e.message)) {\n    throw new Error('Set IMAGE_GEN_MODEL_PREF to a Lemonade image model and restart.');\n  }\n  throw e;\n}","preventionTips":["Always set IMAGE_GEN_MODEL_PREF when any image provider is selected — it is shared across providers.","Confirm the model id is actually loaded by your Lemonade server.","Validate provider-required env vars together at startup.","Restart after .env changes."],"tags":["lemonade","image-generation","configuration","missing-env","constructor"],"backgroundTag":null,"analyzedSha":"526360e320da9d1b36074be5ed64fe76e5bbfbbd","analyzedAt":"2026-08-13T01:45:47.170Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}