FlowiseAI/Flowise · error · Error
${e}
Error message
${e} What it means
Thrown in Chroma vectorStoreMethods as the catch-all around Chroma.fromDocuments and record-manager indexing. Covers connection, auth, collection, and document-insertion failures. Uses `throw new Error(e)`, coercing the underlying error to a string and losing its stack/type.
Source
Thrown at packages/components/nodes/vectorstores/Chroma/Chroma.ts:147
const vectorStore = await Chroma.fromExistingCollection(embeddings, obj)
await recordManager.createSchema()
const res = await index({
docsSource: finalDocs,
recordManager,
vectorStore,
options: {
cleanup: recordManager?.cleanup,
sourceIdKey: recordManager?.sourceIdKey ?? 'source',
vectorStoreName: collectionName
}
})
return res
} else {
await Chroma.fromDocuments(finalDocs, embeddings, obj)
return { numAdded: finalDocs.length, addedDocs: finalDocs }
}
} catch (e) {
throw new Error(e)
}
},
async delete(nodeData: INodeData, ids: string[], options: ICommonObject): Promise<void> {
const collectionName = nodeData.inputs?.collectionName as string
const embeddings = nodeData.inputs?.embeddings as Embeddings
const chromaURL = nodeData.inputs?.chromaURL as string
const recordManager = nodeData.inputs?.recordManager
const credentialData = await getCredentialData(nodeData.credential ?? '', options)
const chromaApiKey = getCredentialParam('chromaApiKey', credentialData, nodeData)
const chromaTenant = getCredentialParam('chromaTenant', credentialData, nodeData)
const chromaDatabase = getCredentialParam('chromaDatabase', credentialData, nodeData)
const obj = _buildChromaConfig(collectionName, chromaURL, chromaApiKey, chromaTenant, chromaDatabase)
try {
if (recordManager) {
const vectorStoreName = collectionNameView on GitHub (pinned to abe4a8601a)
Solutions
- Confirm Chroma is reachable: `curl <chromaURL>/api/v1/heartbeat`.
- Verify chromaApiKey, chromaTenant, chromaDatabase match the Chroma server's auth config.
- Ensure the collection exists and its embedding dimension matches the embeddings model.
- For record-manager mode, confirm the record manager datastore is configured and reachable.
- Retry on transient network failures.
Example fix
// before chromaURL = 'http://localhost:8000' // wrong port -> connection refused, wrapped here // after chromaURL = 'http://localhost:8000' // confirm reachable: curl http://localhost:8000/api/v1/heartbeat
Defensive patterns
Strategy: try-catch
Validate before calling
async function preflightChroma(url: string, creds: any) {
if (!/^https?:\/\//.test(url)) throw new Error('chromaURL must be a full http(s) URL')
const res = await fetch(`${url.replace(/\/$/, '')}/api/v1/heartbeat`).catch(() => null)
if (!res || !res.ok) throw new Error(`Chroma unreachable at ${url} — start the server or fix the URL`)
if (creds?.chromaApiKey === undefined && process.env.CHROMA_API_KEY) {
throw new Error('Chroma server has auth enabled but chromaApiKey credential is not set')
}
} Type guard
const hasChromaEndpoint = (v: unknown): v is string => typeof v === 'string' && /^https?:\/\/.+/.test(v)
Try / catch
try { return await chromaNode.vectorStoreMethods.upsert(nodeData, options) }
catch (e) {
const msg = (e as Error).message
if (/econnrefused|enotfound|fetch failed/i.test(msg)) throw new Error('Chroma server unreachable — check chromaURL')
if (/unauthor|401|api key/i.test(msg)) throw new Error('Chroma auth failed — check chromaApiKey/tenant/database')
if (/dimension|embedding/i.test(msg)) throw new Error('Collection embedding dimension mismatch')
throw e
} Prevention
- Health-check Chroma (`/api/v1/heartbeat`) before running flows.
- Keep chromaApiKey, chromaTenant, chromaDatabase aligned with the Chroma server's auth config.
- Ensure the collection's embedding dimension matches the embeddings model.
- For record-manager mode, confirm the record manager datastore is reachable.
- Pin a compatible Chroma server version; upgrade with a migration test.
When it happens
Trigger: Chroma server unreachable (wrong chromaURL); chromaApiKey mismatch when auth is enabled; collection does not exist or dimension mismatch; embeddings dimension differs from the collection's; recordManager misconfigured; network failure.
Common situations: Self-hosted Chroma not running; chromaURL points to wrong host/port; Chroma auth enabled but key wrong or tenant/database mismatch; collection created with a different embedding dimension; Chroma version incompatibility.
Related errors
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/8fe9b8ce0eab4d0b.
Report an issue: GitHub.