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

  1. Set conductor.vectordb.pinecone.apiKey to a valid Pinecone API key in your config.
  2. Verify the property name spelling exactly matches conductor.vectordb.pinecone.apiKey.
  3. If using a secret manager/vault, confirm it injects the key into the environment Spring reads.
  4. 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

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


AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14). Data as JSON: /api/errors/f438d6a573755a30. Report an issue: GitHub.