Mintplex-Labs/anything-llm · error
${errors[0]}
Error message
${errors[0]} What it means
Surfaced when Document.addDocuments returns a non-empty failedToEmbed array after the collector already processed the text (POST /browser-extension/embed-content). This is the vector-store write path: the first per-file error from errors is returned. Typical root causes are embedder/vector-dimension mismatches (workspace embedder changed after vectors existed), an invalid or out-of-quota embedder API key, or a vector DB (local LanceDB folder or external provider) that is unwritable or unreachable.
Source
Thrown at server/endpoints/browserExtension.js:115
const Collector = new CollectorApi();
const { success, reason, documents } = await Collector.processRawText(
textContent,
metadata
);
if (!success) {
response.status(500).json({ success: false, error: reason });
return;
}
const { failedToEmbed = [], errors = [] } = await Document.addDocuments(
workspace,
[documents[0].location],
user?.id
);
if (failedToEmbed.length > 0) {
response.status(500).json({ success: false, error: errors[0] });
return;
}
await Telemetry.sendTelemetry("browser_extension_embed_content");
response.status(200).json({ success: true });
} catch (error) {
console.error(error);
response.status(500).json({ error: "Failed to embed content" });
}
}
);
app.post(
"/browser-extension/upload-content",
[validBrowserExtensionApiKey],
async (request, response) => {
try {
const { textContent, metadata } = reqBody(request);View on GitHub (pinned to 3aec848f28)
Solutions
- Read errors[0] - it is the raw embedder/vector-DB error (dimension mismatch text, 401, ECONNREFUSED) and names the failing component.
- In Admin -> Embedder Preferences, confirm provider, key, and model still match what the workspace was created with.
- If you intentionally changed embedders, clear the workspace's embedded documents (or embed into a fresh workspace) so index dimensions match the new embedder.
- Verify the vector DB location is writable (local) or the provider is reachable (external).
Defensive patterns
Strategy: validation
Validate before calling
const embedder = await getSystemPreferences(); // admin API
if (!embedder?.EmbeddingEngine && !isDefaultOk) throw new Error('No embedder configured');
await testEmbedderConnection(); // admin 'test embedder' endpoint before bulk embedding Try / catch
try { await embedContent(apiKey, payload); }
catch (e) {
if (e.status === 500 && e.body?.success === false) {
// errors[0] is the raw embedder error - dimension/auth text means config, not retry
throw new Error(`Embedding backend rejected the doc: ${e.body.error}`);
}
throw e;
} Prevention
- Never switch embedder provider/model on a workspace that already has embedded documents - re-embed from scratch instead.
- Keep embedder provider API keys valid and quota available.
- Ensure the vector DB storage path is writable before bulk imports.
When it happens
Trigger: Workspace embedder switched (e.g. default -> OpenAI) so new vectors have a different dimension than the index expects; embedder provider key invalid/expired (401 surfaced in errors[0]); vector DB storage path read-only or corrupted; Ollama/local embedder endpoint down.
Common situations: Changing Embedder Preferences after documents were already embedded; provider outage mid-batch; container storage volume permissions changed.
Related errors
- Failed to fetch workspaces
- Failed to disconnect and revoke API key
- ${reason}
- Failed to embed content
- Failed to fetch API keys
AI-assisted analysis of Mintplex-Labs/anything-llm@3aec848f28 (2026-08-18).
Data as JSON: /api/errors/8810384762ce1a28.
Report an issue: GitHub.