n8n-io/n8n · error · NodeOperationError
Index ${credentials.pineconeIndex} not found
Error message
Index ${credentials.pineconeIndex} not found What it means
In ChatHubVectorStorePinecone.populateVectorStore the node calls Pinecone listIndexes() and throws a NodeOperationError if the configured index name (credentials.pineconeIndex) is not present. This is a pre-flight check before inserting documents so the user gets a clear message instead of a Pinecone SDK error.
Source
Thrown at packages/@n8n/nodes-langchain/nodes/vector_store/ChatHubVectorStorePinecone/ChatHubVectorStorePinecone.node.ts:173
return results.map(([doc, score]) => [
{ ...doc, metadata: filterChatHubMetadata(doc.metadata, CHAT_HUB_RETRIEVE_METADATA_KEYS) },
score,
]);
};
return store;
},
async populateVectorStore(context, embeddings, documents, itemIndex) {
const credentials = await context.getCredentials<ChatHubVectorStorePineconeApiCredentials>(
'chatHubVectorStorePineconeApi',
);
const namespaceName = getUserScopedSlot(context, credentials.namespacePrefix, itemIndex);
const client = new Pinecone({ apiKey: credentials.apiKey });
const indexes = ((await client.listIndexes()).indexes ?? []).map((i) => i.name);
if (!indexes.includes(credentials.pineconeIndex)) {
throw new NodeOperationError(
context.getNode(),
`Index ${credentials.pineconeIndex} not found`,
{
itemIndex,
description: 'Please check that the index exists in your Pinecone account',
},
);
}
const pineconeIndex = client.Index(credentials.pineconeIndex);
await PineconeStore.fromDocuments(filterChatHubInsertDocuments(documents), embeddings, {
namespace: namespaceName,
pineconeIndex,
});
},
}) {}
View on GitHub (pinned to 5ac6606e81)
Solutions
- Create the index in the Pinecone console (or via API) with the exact name and matching dimension before running the workflow.
- Verify the index name spelling and casing in the node's pineconeIndex credential field.
- Confirm the API key points to the Pinecone project that contains the index.
- If the index was just created, wait ~1-2 minutes for it to become ready and retry.
Defensive patterns
Strategy: validation
Validate before calling
// List indexes before populating; create if missing.
const indexes = ((await client.listIndexes()).indexes ?? []).map(i => i.name);
if (!indexes.includes(credentials.pineconeIndex)) {
throw new Error(`Pinecone index '${credentials.pineconeIndex}' not found in this project. Found: ${indexes.join(', ')}`);
} Prevention
- Pre-create Pinecone indexes with the correct dimension before running ingest workflows.
- Store the index name in a single shared credential/variable to avoid casing drift.
- Confirm the API key's project contains the index before scheduling ingest jobs.
When it happens
Trigger: client.listIndexes() returns the list of index names for the API key's project, and credentials.pineconeIndex is not in that list (case-sensitive).
Common situations: The Pinecone index has not been created yet; typo in the index name; the API key belongs to a different Pinecone project/environment that does not contain the index; the index was just created and is still initializing (Pinecone reports it as not found until ready).
Related errors
- Azure AI Search endpoint is missing or invalid
- API Key is required for authentication
- Index ${index} not found
- Redis client not initialized
- Invalid filter operator "${operator}" for key "${key}". Supp
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/9084b233b01f3dc9.
Report an issue: GitHub.