Mintplex-Labs/anything-llm · error · Error
Could not embed document chunks! This document will not be r
Error message
Could not embed document chunks! This document will not be recorded.
What it means
On the novel-document path, pageContent is split into chunks and EmbedderEngine.embedChunks(textChunks) is called. If that returns null/undefined or an empty array (the `!!vectorValues && vectorValues.length > 0` check fails), the code refuses to record the document and throws. The failure is in the embedding engine layer, before Weaviate is ever contacted.
Source
Thrown at server/utils/vectorDbProviders/weaviate/index.js:321
const vectorRecord = {
class: camelCase(namespace),
id: uuidv4(),
vector: vector,
// [DO NOT REMOVE]
// LangChain will be unable to find your text if you embed manually and dont include the `text` key.
// https://github.com/hwchase17/langchainjs/blob/5485c4af50c063e257ad54f4393fa79e0aff6462/langchain/src/vectorstores/weaviate.ts#L133
properties: { ...flattenedMetadata, text: textChunks[i] },
};
submission.ids.push(vectorRecord.id);
submission.vectors.push(vectorRecord.values);
submission.properties.push(metadata);
vectors.push(vectorRecord);
documentVectors.push({ docId, vectorId: vectorRecord.id });
}
} else {
throw new Error(
"Could not embed document chunks! This document will not be recorded."
);
}
const { client } = await this.connect();
const weaviateClassExits = await this.hasNamespace(namespace);
if (!weaviateClassExits) {
await client.schema
.classCreator()
.withClass({
class: camelCase(namespace),
description: `Class created by AnythingLLM named ${camelCase(
namespace
)}`,
vectorizer: "none",
})
.do();
}View on GitHub (pinned to 3aec848f28)
Solutions
- Open Admin settings and re-verify the embedding engine selection and its API key/endpoint, then save
- Test the embedder directly (e.g. curl the provider /embeddings endpoint) with the configured credentials
- Check document processing logs for 'Snippets created from document: 0' — an empty extraction also produces no vectors
- After fixing/changing the embedder, re-upload the document so fresh chunks and vectors are generated
Defensive patterns
Strategy: validation
Validate before calling
const embedder = getEmbeddingEngineSelection();
if (!embedder) throw new Error("No embedding engine configured — set one in admin settings");
const chunks = await textSplitter.splitText(pageContent);
if (chunks.length === 0) throw new Error("Document produced no text chunks");
const vectors = await embedder.embedChunks(chunks);
if (!vectors?.length) throw new Error("Embedder returned no vectors — check credentials"); Try / catch
const { vectorized, error } = await provider.addDocumentToNamespace(...);
if (!vectorized && /Could not embed document chunks/.test(String(error)))
haltIngestion("Embedding engine failure — verify provider config before retrying", error); Prevention
- Block ingestion at the start if no embedding engine is selected or its credential test fails
- Smoke-test the embedder with a one-chunk request before batch-processing documents
- Alert on zero-chunk extractions so empty files fail loudly with their own message
When it happens
Trigger: Embedding engine unconfigured or misselected in admin settings; embedder API key invalid, quota exhausted, or endpoint unreachable so embedChunks yields nothing; the document produced zero text chunks (empty extraction); local embedding runtime missing on the host.
Common situations: Default OpenAI embedder kept while OPEN_AI_KEY was never set; switching embedder providers without re-verifying credentials; uploading an empty or unparseable file (0 chunks); all-native/local embedder binary not installed; embedder service temporarily down.
Related errors
- Weaviate::Invalid ENV settings
- Error embedding into Weaviate
- Type "${type}" is not a valid type to sync.
- Could not embed document chunks! This document will not be r
- ChromaCloud::Invalid ENV settings
AI-assisted analysis of Mintplex-Labs/anything-llm@3aec848f28 (2026-08-18).
Data as JSON: /api/errors/380fb7943ed1e8a4.
Report an issue: GitHub.