{"record":{"id":"f438d6a573755a30","repo":"conductor-oss/conductor","slug":"pinecone-api-key-is-not-configured-please-set-con","errorCode":null,"errorMessage":"Pinecone API key is not configured. Please set conductor.vectordb.pinecone.apiKey","messagePattern":"Pinecone API key is not configured\\. Please set conductor\\.vectordb\\.pinecone\\.apiKey","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"critical","filePath":"ai/src/main/java/org/conductoross/conductor/ai/vectordb/pinecone/PineconeDB.java","lineNumber":208,"sourceCode":"            return searchWithNameSpace(indexName, namespace, embeddings, topK);\n        } catch (Exception e) {\n            if (e.getMessage() != null && e.getMessage().contains(\"feature 'Namespaces'\")) {\n                return searchWithNameSpace(indexName, \"\", embeddings, topK);\n            } else {\n                throw e;\n            }\n        }\n    }\n\n    @SneakyThrows\n    private Index getConnection(String indexName) {\n        return indexCache.get(indexName, () -> getIndex(indexName));\n    }\n\n    private Index getIndex(String indexName) {\n        String apiKey = config.getApiKey();\n        if (apiKey == null || apiKey.trim().isEmpty()) {\n            throw new RuntimeException(\n                    \"Pinecone API key is not configured. Please set conductor.vectordb.pinecone.apiKey\");\n        }\n        Pinecone pinecone =\n                new Pinecone.Builder(apiKey)\n                        .withOkHttpClient(AIHttpClients.defaultClient())\n                        .build();\n        return pinecone.getIndexConnection(indexName);\n    }\n}\n","sourceCodeStart":190,"sourceCodeEnd":218,"githubUrl":"https://github.com/conductor-oss/conductor/blob/cf7c3e4a8adfb158be778ab1ec525323c363cd3a/ai/src/main/java/org/conductoross/conductor/ai/vectordb/pinecone/PineconeDB.java#L190-L218","documentation":"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.","triggerScenarios":"Invoking any Pinecone operation (upsert/search) before conductor.vectordb.pinecone.apiKey is set, or with it set to an empty string.","commonSituations":"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.","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."],"exampleFix":"// before\n# application.properties (missing key)\nconductor.vectordb.pinecone.environment=us-east-1-aws\n// after\nconductor.vectordb.pinecone.apiKey=${PINECONE_API_KEY}\nconductor.vectordb.pinecone.environment=us-east-1-aws","handlingStrategy":"validation","validationCode":"// Fail fast at startup if the key is missing\n@Value(\"${conductor.vectordb.pinecone.apiKey:}\") String apiKey;\nif (StringUtils.isBlank(apiKey)) {\n    throw new IllegalStateException(\"conductor.vectordb.pinecone.apiKey is not set\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["pinecone","vectordb","configuration","secrets","auth"],"backgroundTag":null,"analyzedSha":"cf7c3e4a8adfb158be778ab1ec525323c363cd3a","analyzedAt":"2026-08-14T03:33:19.897Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}