{"record":{"id":"abca5d7a87dd1206","repo":"conductor-oss/conductor","slug":"missing-connection-url-please-check-conductor-ve","errorCode":null,"errorMessage":"Missing connection URL - please check conductor.vectordb.postgres.datasourceURL","messagePattern":"Missing connection URL - please check conductor\\.vectordb\\.postgres\\.datasourceURL","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"critical","filePath":"ai/src/main/java/org/conductoross/conductor/ai/vectordb/postgres/PostgresVectorDB.java","lineNumber":87,"sourceCode":"                                            ((HikariDataSource) dataSource).close();\n                                        }\n                                    }\n                                })\n                        .build();\n    }\n\n    @SneakyThrows\n    private DataSource getClient() {\n        String cacheKey = config.getDatasourceURL();\n        return pgvectorClients.get(cacheKey, this::getPgVectorClient);\n    }\n\n    private DataSource getPgVectorClient() {\n        String connectionURL = config.getDatasourceURL();\n        final String driverClassName = \"org.postgresql.Driver\";\n\n        if (StringUtils.isBlank(connectionURL)) {\n            throw new RuntimeException(\n                    \"Missing connection URL - please check conductor.vectordb.postgres.datasourceURL\");\n        }\n\n        String userName = config.getUser();\n        String password = config.getPassword();\n        int poolSize = config.getConnectionPoolSize() != null ? config.getConnectionPoolSize() : 5;\n\n        HikariConfig hikariConfig = new HikariConfig();\n        hikariConfig.setJdbcUrl(connectionURL);\n        hikariConfig.setAutoCommit(true);\n        hikariConfig.setDriverClassName(driverClassName);\n        hikariConfig.setUsername(userName);\n        hikariConfig.setPassword(password);\n        hikariConfig.setMaximumPoolSize(poolSize);\n        hikariConfig.setIdleTimeout(60_000);\n\n        return new HikariDataSource(hikariConfig);\n    }","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/conductor-oss/conductor/blob/cf7c3e4a8adfb158be778ab1ec525323c363cd3a/ai/src/main/java/org/conductoross/conductor/ai/vectordb/postgres/PostgresVectorDB.java#L69-L105","documentation":"Thrown as a plain RuntimeException by PostgresVectorDB.getPgVectorClient when config.getDatasourceURL() is blank. The HikariCP pool cannot be built without a JDBC URL, so no database access is possible. The expected config key is conductor.vectordb.postgres.datasourceURL.","triggerScenarios":"Calling any Postgres vector operation before conductor.vectordb.postgres.datasourceURL is set, or with it set to blank.","commonSituations":"Missing JDBC URL property; property name typo (e.g. datasource-url vs datasourceURL); secret/env var not substituted; profile config missing the datasource; copied template without filling the URL.","solutions":["Set conductor.vectordb.postgres.datasourceURL to a valid PostgreSQL JDBC URL (e.g. jdbc:postgresql://host:5432/db).","Verify the exact property name spelling (datasourceURL, camelCase).","Confirm env var placeholders like ${DB_URL} resolve to a non-empty value at runtime.","Check the active Spring profile includes the datasource config."],"exampleFix":"// before\n# missing datasourceURL\nconductor.vectordb.postgres.user=app\n// after\nconductor.vectordb.postgres.datasourceURL=jdbc:postgresql://${PG_HOST}:5432/vectordb\nconductor.vectordb.postgres.user=app","handlingStrategy":"validation","validationCode":"// Fail fast at startup if the JDBC URL is missing\n@Value(\"${conductor.vectordb.postgres.datasourceURL:}\") String url;\nif (StringUtils.isBlank(url)) {\n    throw new IllegalStateException(\"conductor.vectordb.postgres.datasourceURL is not set\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set the JDBC URL via env var placeholder in every environment.","Add a startup connectivity check to Postgres.","Verify the exact camelCase property name."],"tags":["postgres","vectordb","configuration","database","connection"],"backgroundTag":null,"analyzedSha":"cf7c3e4a8adfb158be778ab1ec525323c363cd3a","analyzedAt":"2026-08-14T03:33:19.897Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}