Mintplex-Labs/anything-llm · critical · Error
No Lemonade Model Pref was set.
Error message
No Lemonade Model Pref was set.
What it means
Thrown by the LemonadeLLM constructor when neither the LEMONADE_LLM_MODEL_PREF environment variable nor the modelPreference constructor argument is provided. The check uses `&&` (both must be missing), so providing either one satisfies it. The model is later resolved as `modelPreference || process.env.LEMONADE_LLM_MODEL_PREF`.
Source
Thrown at server/utils/AiProviders/lemonade/index.js:17
const { NativeEmbedder } = require("../../EmbeddingEngines/native");
const {
handleDefaultStreamResponseV2,
formatChatHistory,
} = require("../../helpers/chat/responses");
const {
LLMPerformanceMonitor,
} = require("../../helpers/chat/LLMPerformanceMonitor");
const { OpenAI: OpenAIApi } = require("openai");
const { humanFileSize } = require("../../helpers");
class LemonadeLLM {
constructor(embedder = null, modelPreference = null) {
if (!process.env.LEMONADE_LLM_BASE_PATH)
throw new Error("No Lemonade API Base Path was set.");
if (!process.env.LEMONADE_LLM_MODEL_PREF && !modelPreference)
throw new Error("No Lemonade Model Pref was set.");
this.className = "LemonadeLLM";
this.lemonade = new OpenAIApi({
baseURL: parseLemonadeServerEndpoint(
process.env.LEMONADE_LLM_BASE_PATH,
"openai"
),
apiKey: process.env.LEMONADE_LLM_API_KEY || null,
});
this.model = modelPreference || process.env.LEMONADE_LLM_MODEL_PREF;
this.embedder = embedder ?? new NativeEmbedder();
this.defaultTemp = 0.7;
// We can establish here since we cannot dynamically curl the context window limit from the API.
this.limits = {
history: this.promptWindowLimit() * 0.15,
system: this.promptWindowLimit() * 0.15,View on GitHub (pinned to 526360e320)
Solutions
- Set LEMONADE_LLM_MODEL_PREF in .env to a model available on your Lemonade server.
- Select a model in the workspace LLM configuration UI so modelPreference is passed to the constructor.
- Use the Lemonade model-discovery endpoint to list available models and pick a valid identifier.
Example fix
// before: .env — only base path is set LEMONADE_LLM_BASE_PATH='http://127.0.0.1:8000' // after: add model pref LEMONADE_LLM_BASE_PATH='http://127.0.0.1:8000' LEMONADE_LLM_MODEL_PREF='Llama-3.2-1B-Instruct-cuda'
Defensive patterns
Strategy: validation
Validate before calling
function validateLemonadeModel(modelPreference) {
if (!process.env.LEMONADE_LLM_MODEL_PREF && !modelPreference) {
throw new Error(
'No Lemonade model set. Set LEMONADE_LLM_MODEL_PREF in .env or select a model in workspace settings.'
);
}
return modelPreference || process.env.LEMONADE_LLM_MODEL_PREF;
}
const model = validateLemonadeModel(workspaceModel); Type guard
/** @returns {model is string} */
function isValidModelName(model) {
return typeof model === 'string' && model.trim().length > 0;
} Try / catch
try {
const llm = new LemonadeLLM(embedder, model);
} catch (e) {
if (e.message.includes('Model Pref')) {
console.error('Select a Lemonade model in workspace settings or set LEMONADE_LLM_MODEL_PREF.');
return null;
}
throw e;
} Prevention
- Use Lemonade's model-discovery API to populate the model dropdown in the UI.
- Set a default LEMONADE_LLM_MODEL_PREF in .env as a fallback.
- Validate that the selected model is still available on the Lemonade server at startup.
When it happens
Trigger: Instantiating `new LemonadeLLM(embedder, model)` where the `model` argument is null/undefined/falsy AND process.env.LEMONADE_LLM_MODEL_PREF is also unset. This happens through getLLMProvider when the workspace has no model selected.
Common situations: Selecting the Lemonade provider in workspace settings without choosing a model from the dropdown. The Lemonade server was just started and hasn't reported any models to AnythingLLM's model-listing UI yet. The LEMONADE_LLM_MODEL_PREF env var was removed from .env during cleanup.
Related errors
- KoboldCPP must have a valid model set.
- No Lemonade API Base Path was set.
- LiteLLM must have a valid model set.
- LMStudio must have a valid model set.
- GenericOpenAI must have a valid model set.
AI-assisted analysis of Mintplex-Labs/anything-llm@526360e320 (2026-08-13).
Data as JSON: /api/errors/3bcfb50bc62c06fa.
Report an issue: GitHub.