{"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":"exception","errorClass":null,"httpStatus":null,"severity":"error","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/3aec848f2885144aa8f1e53b9731a04310d5d558/server/utils/ImageGenerators/lemonade/index.js#L1-L26","documentation":"The LemonadeImageGenerator constructor throws immediately when IMAGE_GEN_MODEL_PREF is unset or empty. AnythingLLM has no default image model for Lemonade, so the shared IMAGE_GEN_MODEL_PREF variable must be populated; its value is passed as `model` to every images.generate call. Fails fast at instantiation.","triggerScenarios":"Selecting the Lemonade image engine without setting IMAGE_GEN_MODEL_PREF; the variable was cleared when switching image engines (it is shared across engines); .env edited but the process not restarted.","commonSituations":"Users who set only the base path when adopting Lemonade; switching from OpenAI to Lemonade and assuming the model pref carries over or defaults.","solutions":["Set IMAGE_GEN_MODEL_PREF to an image model your Lemonade server actually serves.","List the models available on the Lemonade server and copy the id exactly.","Restart the server / recreate the container after saving.","If you also use another image engine, remember this variable is shared — keep it valid for whichever engine is active."],"exampleFix":"# .env — before\nIMAGE_GEN_ENGINE=lemonade\nIMAGE_GEN_LEMONADE_BASE_PATH=http://localhost:8000\n\n# .env — after\nIMAGE_GEN_ENGINE=lemonade\nIMAGE_GEN_LEMONADE_BASE_PATH=http://localhost:8000\nIMAGE_GEN_MODEL_PREF=<lemonade-image-model-id>","handlingStrategy":"validation","validationCode":"if (!process.env.IMAGE_GEN_MODEL_PREF) {\n  throw new Error(\n    \"Lemonade image engine selected but IMAGE_GEN_MODEL_PREF is missing.\"\n  );\n}\nconst { LemonadeImageGenerator } = require(\"server/utils/ImageGenerators/lemonade\");\nconst generator = new LemonadeImageGenerator();","typeGuard":"function hasImageModelPref(env = process.env) {\n  return (\n    typeof env.IMAGE_GEN_MODEL_PREF === \"string\" &&\n    env.IMAGE_GEN_MODEL_PREF.length > 0\n  );\n}","tryCatchPattern":"try {\n  new LemonadeImageGenerator();\n} catch (err) {\n  if (err.message.includes(\"Lemonade image generation model\")) {\n    // direct the user to pick an image model for Lemonade in settings\n  }\n}","preventionTips":["Remember IMAGE_GEN_MODEL_PREF is shared across image engines — validate it whenever the engine changes.","Prefill the model pref from the engine's model list when saving settings.","Fail fast at boot instead of at first image request."],"tags":["lemonade","image-generation","configuration","environment-variables"],"backgroundTag":"missing-env-var","analyzedSha":"3aec848f2885144aa8f1e53b9731a04310d5d558","analyzedAt":"2026-08-18T10:02:21.017Z","contentChangedAt":"2026-08-18T10:02:21.017Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}