FlowiseAI/Flowise · error · Error
${e}
Error message
${e} What it means
Generic catch-all in the Pinecone node's add path wrapping either the record-manager-based upsert or `PineconeStore.fromDocuments`. Any exception is re-thrown as `new Error(e)`, flattening the original Pinecone/LangChain error into a string and dropping its stack.
Source
Thrown at packages/components/nodes/vectorstores/Pinecone/Pinecone.ts:185
await recordManager.createSchema()
const res = await index({
docsSource: finalDocs,
recordManager,
vectorStore,
options: {
cleanup: recordManager?.cleanup,
sourceIdKey: recordManager?.sourceIdKey ?? 'source',
vectorStoreName: pineconeNamespace
}
})
return res
} else {
await PineconeStore.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 _index = nodeData.inputs?.pineconeIndex as string
const pineconeNamespace = nodeData.inputs?.pineconeNamespace as string
const embeddings = nodeData.inputs?.embeddings as Embeddings
const pineconeTextKey = nodeData.inputs?.pineconeTextKey as string
const recordManager = nodeData.inputs?.recordManager
const credentialData = await getCredentialData(nodeData.credential ?? '', options)
const pineconeApiKey = getCredentialParam('pineconeApiKey', credentialData, nodeData)
const client = new Pinecone({ apiKey: pineconeApiKey })
const pineconeIndex = client.Index(_index)
const obj: PineconeStoreParams = {
pineconeIndex,View on GitHub (pinned to abe4a8601a)
Solutions
- Inspect the flattened message for the Pinecone SDK reason (auth, dimension, quota).
- Verify `pineconeApiKey`, index name, environment/region, and namespace.
- Confirm embedding dimension equals the Pinecone index dimension.
- For 429s, add backoff/retry or reduce batch size.
- Re-wrap preserving the original error (see fix).
Example fix
// before
} catch (e) {
throw new Error(e)
}
// after — keep cause + stack
} catch (e) {
throw e instanceof Error ? e : new Error(String(e))
} Defensive patterns
Strategy: try-catch
Validate before calling
// preflight: validate Pinecone config + dimension
if (!pineconeApiKey) throw new Error('pineconeApiKey is required')
const dim = (await embeddings.embedQuery('test')).length
if (expectedIndexDimension && dim !== expectedIndexDimension) {
throw new Error(`Embedding dim ${dim} != index dim ${expectedIndexDimension}`)
} Type guard
function isPineconeRateLimit(e: unknown): boolean {
return typeof e === 'object' && e !== null && (e as any).status === 429
} Try / catch
try {
await PineconeStore.fromDocuments(finalDocs, embeddings, obj)
} catch (e) {
if (isPineconeRateLimit(e)) { /* backoff + retry */ }
throw e instanceof Error ? e : new Error(String(e))
} Prevention
- Keep embedding dimension aligned with the Pinecone index dimension.
- Rotate API keys via secrets management.
- Add backoff/retry around 429 responses.
- Re-wrap errors preserving the original stack.
When it happens
Trigger: Pinecone API key invalid or environment/index misconfigured; namespace does not exist; vector dimension mismatch with the index; rate limiting (429) from Pinecone; record-manager key operations failing; embedding model error.
Common situations: Rotated API key; switched from pod to serverless (or vice versa) without updating config; embedding dimension changed; exceeded Pinecone pod quota; network egress blocked.
Related errors
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/9c1b2e4a3975c8b2.
Report an issue: GitHub.