conductor-oss/conductor · critical · RuntimeException
Pinecone API key is not configured. Please set conductor.vec
Error message
Pinecone API key is not configured. Please set conductor.vectordb.pinecone.apiKey
What it means
Thrown as a plain RuntimeException by PineconeDB.getIndex when config.getApiKey() is null or blank/whitespace. The Pinecone client cannot authenticate without an API key, so no index connection can be established. The config key is conductor.vectordb.pinecone.apiKey.
Source
Thrown at ai/src/main/java/org/conductoross/conductor/ai/vectordb/pinecone/PineconeDB.java:208
return searchWithNameSpace(indexName, namespace, embeddings, topK);
} catch (Exception e) {
if (e.getMessage() != null && e.getMessage().contains("feature 'Namespaces'")) {
return searchWithNameSpace(indexName, "", embeddings, topK);
} else {
throw e;
}
}
}
@SneakyThrows
private Index getConnection(String indexName) {
return indexCache.get(indexName, () -> getIndex(indexName));
}
private Index getIndex(String indexName) {
String apiKey = config.getApiKey();
if (apiKey == null || apiKey.trim().isEmpty()) {
throw new RuntimeException(
"Pinecone API key is not configured. Please set conductor.vectordb.pinecone.apiKey");
}
Pinecone pinecone =
new Pinecone.Builder(apiKey)
.withOkHttpClient(AIHttpClients.defaultClient())
.build();
return pinecone.getIndexConnection(indexName);
}
}
View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Set conductor.vectordb.pinecone.apiKey to a valid Pinecone API key in your config.
- Verify the property name spelling exactly matches conductor.vectordb.pinecone.apiKey.
- If using a secret manager/vault, confirm it injects the key into the environment Spring reads.
- Check for profile-specific config overriding the key with a blank value.
Example fix
// before
# application.properties (missing key)
conductor.vectordb.pinecone.environment=us-east-1-aws
// after
conductor.vectordb.pinecone.apiKey=${PINECONE_API_KEY}
conductor.vectordb.pinecone.environment=us-east-1-aws Defensive patterns
Strategy: validation
Validate before calling
// Fail fast at startup if the key is missing
@Value("${conductor.vectordb.pinecone.apiKey:}") String apiKey;
if (StringUtils.isBlank(apiKey)) {
throw new IllegalStateException("conductor.vectordb.pinecone.apiKey is not set");
} Prevention
- Inject the key via a secret manager/env var placeholder.
- Add a startup health check that the Pinecone key is present.
- Never commit the key; reference it by property name only.
When it happens
Trigger: Invoking any Pinecone operation (upsert/search) before conductor.vectordb.pinecone.apiKey is set, or with it set to an empty string.
Common situations: Missing/typoed property in application.properties; secret not injected in the deployment env; property name mismatch; apiKey left blank in a config file copied from a template; secret resolution from a vault failing silently.
Related errors
- VectorDB not found: <vectorDBName>
- Missing connection URL - please check conductor.vectordb.pos
- env-backed secrets are read-only
- secrets are disabled
- Skill registry is not available
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/f438d6a573755a30.
Report an issue: GitHub.