conductor-oss/conductor · error · NonRetryableException
VectorDB not found: <vectorDBName>
Error message
VectorDB not found: <vectorDBName>
What it means
Thrown as NonRetryableException by VectorDBs.storeEmbeddings when vectorDBProvider.get(vectorDBName, context) returns null. The named vector database integration is not registered/available in the provider, so Conductor cannot persist embeddings. Fails the task terminally because no amount of retries will register a missing integration.
Source
Thrown at ai/src/main/java/org/conductoross/conductor/ai/vectordb/VectorDBs.java:49
public VectorDBs(VectorDBProvider vectorDBProvider) {
this.vectorDBProvider = vectorDBProvider;
log.info("vectorDBProvider: {}", vectorDBProvider);
}
public int storeEmbeddings(
String vectorDBName,
TaskContext context,
String indexName,
String namespace,
String text,
String parentDocId,
String id,
List<Float> embeddings,
Map<String, Object> metadata) {
VectorDB db = vectorDBProvider.get(vectorDBName, context);
if (db == null) {
throw new NonRetryableException("VectorDB not found: " + vectorDBName);
}
return db.updateEmbeddings(
indexName, namespace, text, parentDocId, id, embeddings, metadata);
}
public List<IndexedDoc> searchEmbeddings(
String vectorDBName,
TaskContext context,
String indexName,
String namespace,
List<Float> embeddings,
int maxResults) {
VectorDB db = vectorDBProvider.get(vectorDBName, context);
if (db == null) {
throw new NonRetryableException("VectorDB not found: " + vectorDBName);
}
return db.search(indexName, namespace, embeddings, maxResults);
}View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Check the exact vectorDBName spelling in the task input against the registered integration names.
- Ensure the target integration module is on the classpath and its config (e.g. conductor.vectordb.*) is set so the provider registers it.
- List/log the available vectorDB names from vectorDBProvider to confirm what is registered.
- If dynamically named, verify the name is resolved from a non-empty config/template variable.
Example fix
// before
vectorDBs.storeEmbeddings("pincone", ctx, ...); // typo
// after
vectorDBs.storeEmbeddings("pinecone", ctx, ...); Defensive patterns
Strategy: validation
Validate before calling
// Check the integration is registered before storing
if (vectorDBProvider.get(vectorDBName, context) == null) {
throw new IllegalStateException("vectorDB '" + vectorDBName + "' is not registered; check config");
} Prevention
- Centralize the vectorDB name as a config constant to avoid typos.
- Log available provider names at startup.
- Ensure the integration module + config are present in every environment.
When it happens
Trigger: Calling storeEmbeddings with a vectorDBName that no registered VectorDB provider supplies; referencing an integration name that is misconfigured or disabled; provider not yet initialized at call time.
Common situations: Typo in the vectorDB name in the workflow; the integration (e.g. 'pinecone', 'postgres', 'mongodb') bean is not on the classpath or not configured; config prefix mismatch so the provider never registered the bean; env-specific deployment missing the integration module.
Related errors
- Agent Card resolved from %s does not advertise a JSON-RPC 'u
- AGENT requires one of: message, parts, text, or prompt
- Unsupported agentType '<agentType>' (only 'a2a' is supported
- docId is empty
- Pinecone API key is not configured. Please set conductor.vec
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/2097e205d74a6aac.
Report an issue: GitHub.