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

  1. Set conductor.vectordb.postgres.datasourceURL to a valid PostgreSQL JDBC URL (e.g. jdbc:postgresql://host:5432/db).
  2. Verify the exact property name spelling (datasourceURL, camelCase).
  3. Confirm env var placeholders like ${DB_URL} resolve to a non-empty value at runtime.
  4. 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

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


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