conductor-oss/conductor · critical · RuntimeException
Missing connection URL - please check conductor.vectordb.pos
Error message
Missing connection URL - please check conductor.vectordb.postgres.datasourceURL
What it means
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.
Source
Thrown at ai/src/main/java/org/conductoross/conductor/ai/vectordb/postgres/PostgresVectorDB.java:87
((HikariDataSource) dataSource).close();
}
}
})
.build();
}
@SneakyThrows
private DataSource getClient() {
String cacheKey = config.getDatasourceURL();
return pgvectorClients.get(cacheKey, this::getPgVectorClient);
}
private DataSource getPgVectorClient() {
String connectionURL = config.getDatasourceURL();
final String driverClassName = "org.postgresql.Driver";
if (StringUtils.isBlank(connectionURL)) {
throw new RuntimeException(
"Missing connection URL - please check conductor.vectordb.postgres.datasourceURL");
}
String userName = config.getUser();
String password = config.getPassword();
int poolSize = config.getConnectionPoolSize() != null ? config.getConnectionPoolSize() : 5;
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl(connectionURL);
hikariConfig.setAutoCommit(true);
hikariConfig.setDriverClassName(driverClassName);
hikariConfig.setUsername(userName);
hikariConfig.setPassword(password);
hikariConfig.setMaximumPoolSize(poolSize);
hikariConfig.setIdleTimeout(60_000);
return new HikariDataSource(hikariConfig);
}View on GitHub (pinned to cf7c3e4a8a)
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.
Example fix
// before
# missing datasourceURL
conductor.vectordb.postgres.user=app
// after
conductor.vectordb.postgres.datasourceURL=jdbc:postgresql://${PG_HOST}:5432/vectordb
conductor.vectordb.postgres.user=app Defensive patterns
Strategy: validation
Validate before calling
// Fail fast at startup if the JDBC URL is missing
@Value("${conductor.vectordb.postgres.datasourceURL:}") String url;
if (StringUtils.isBlank(url)) {
throw new IllegalStateException("conductor.vectordb.postgres.datasourceURL is not set");
} Prevention
- Set the JDBC URL via env var placeholder in every environment.
- Add a startup connectivity check to Postgres.
- Verify the exact camelCase property name.
When it happens
Trigger: Calling any Postgres vector operation before conductor.vectordb.postgres.datasourceURL is set, or with it set to blank.
Common situations: 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.
Related errors
- Connection pool failed to start within <maxWaitTime>ms
- VectorDB not found: <vectorDBName>
- Pinecone API key is not configured. Please set conductor.vec
- Interrupted while waiting for connection pool
- Invalid namespace
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/abca5d7a87dd1206.
Report an issue: GitHub.