Mintplex-Labs/anything-llm · error · Error
Lemonade Failed to embed: [${error.type}]: ${error.message}
Error message
Lemonade Failed to embed: [${error.type}]: ${error.message} What it means
Thrown inside the embedChunks loop when a batch resolves with an error (either a result.error payload or a rejected promise). The message is formatted 'Lemonade Failed to embed: [<type>]: <message>' where type defaults to 'failed_to_embed' (or the HTTP status) and message defaults to the upstream error text. The loop logs the message then throws on the first failing batch.
Source
Thrown at server/utils/EmbeddingEngines/lemonade/index.js:81
});
return;
}
resolve({ data: result?.data, error: null });
})
.catch((e) => {
e.type =
e?.response?.data?.error?.code ||
e?.response?.status ||
"failed_to_embed";
e.message = e?.response?.data?.error?.message || e.message;
resolve({ data: [], error: e });
});
});
if (error) {
const errorMsg = `Lemonade Failed to embed: [${error.type}]: ${error.message}`;
this.log(errorMsg);
throw new Error(errorMsg);
}
allResults.push(...(data || []));
reportEmbeddingProgress(
Math.min(allResults.length, textChunks.length),
textChunks.length
);
}
return allResults.length > 0 &&
allResults.every((embd) => embd.hasOwnProperty("embedding"))
? allResults.map((embd) => embd.embedding)
: null;
}
}
module.exports = {
LemonadeEmbedder,
};View on GitHub (pinned to 526360e320)
Solutions
- Read [<type>]: <message>: 'failed_to_embed' with a status -> inspect the Lemonade server logs; 'model not found' -> fix EMBEDDING_MODEL_PREF / load the model; auth errors -> set LEMONADE_LLM_API_KEY.
- Confirm the Lemonade server is up at the parsed endpoint and the model is loaded (hit its /v1/models equivalent).
- Reduce maxConcurrentChunks (default 50) and chunk size to fit local hardware limits.
- Restart the Lemonade server and retry once it is healthy; partial vectors are not returned.
Example fix
// before
if (error) {
const errorMsg = `Lemonade Failed to embed: [${error.type}]: ${error.message}`;
this.log(errorMsg);
throw new Error(errorMsg);
}
// after (collect per-batch failures, continue best-effort)
if (error) {
this.log(`Lemonade batch failed: [${error.type}]: ${error.message}`);
failedBatches.push(chunk);
continue;
} Defensive patterns
Strategy: try-catch
Validate before calling
// Pre-flight: confirm Lemonade exposes the embedding model before bulk
const { OpenAI } = require('openai');
const { parseLemonadeServerEndpoint } = require('../../AiProviders/lemonade');
const client = new OpenAI({ baseURL: parseLemonadeServerEndpoint(process.env.EMBEDDING_BASE_PATH, 'openai'), apiKey: process.env.LEMONADE_LLM_API_KEY || null });
const list = await client.models.list();
if (!list.body.some((m) => m.id === process.env.EMBEDDING_MODEL_PREF)) {
throw new Error(`Lemonade does not expose model ${process.env.EMBEDDING_MODEL_PREF}`);
} Try / catch
try {
await embedder.embedChunks(chunks);
} catch (e) {
const msg = e.message;
if (/model.*not|404|not.found/i.test(msg)) loadModel();
else if (/unauthorized|401/i.test(msg)) setApiKey();
else if (/econnrefused|timeout|socket/i.test(msg)) waitForServer();
else throw e;
} Prevention
- Pre-flight models.list() against the parsed Lemonade endpoint before bulk runs.
- Keep the embedding model loaded in the Lemonade server; reload after restarts.
- Reduce maxConcurrentChunks (default 50) to fit local hardware limits.
When it happens
Trigger: EMBEDDING_MODEL_PREF names a model not loaded in the Lemonade server; the Lemonade server is down/unreachable mid-run; LEMONADE_LLM_API_KEY required but unset/invalid; chunks exceed the model's capacity; the server returns a non-2xx with an error body.
Common situations: Local Lemonade server restarted without reloading the embedding model; wrong model id; resource limits on the GPU causing failures on large batches; auth enabled on the server but key unset.
Related errors
- GenericOpenAI Failed to embed: ${error.message}
- No Lemonade API Base Path was set.
- No Embedding Model Pref was set.
- Could not find indexes.
- Failed to fetch documents by paths.
AI-assisted analysis of Mintplex-Labs/anything-llm@526360e320 (2026-08-13).
Data as JSON: /api/errors/641f4b1f225e646d.
Report an issue: GitHub.