apache/seatunnel · error · CatalogException
Failed to connect url
Error message
Failed to connect url %s
What it means
DorisCatalog.open obtains a JDBC connection to a randomly chosen FE via DriverManager; any SQLException is wrapped into CatalogException('Failed to connect url %s'), meaning the catalog could not establish its metadata connection at startup.
Solutions
- Verify FE host(s) and query_port, and that at least one FE is alive
- Check username/password and network/firewall access to the FE JDBC port
- Validate the generated JDBC URL (default database exists, driver on classpath)
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:142 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/6c3492582c82ab9d.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:142
String defaultDatabase) {
this(catalogName, frontEndNodes, queryPort, username, password, createTableTemplate);
this.defaultDatabase = defaultDatabase;
}
@Override
public void open() throws CatalogException {
String jdbcUrl =
DorisCatalogUtil.getJdbcUrl(
DorisCatalogUtil.randomFrontEndHost(frontEndNodes),
queryPort,
defaultDatabase);
try {
conn = DriverManager.getConnection(jdbcUrl, username, password);
conn.getCatalog();
dorisVersion = getDorisVersion();
typeConverter = DorisTypeConverterFactory.getTypeConverter(dorisVersion);
} catch (SQLException e) {
throw new CatalogException(String.format("Failed to connect url %s", jdbcUrl), e);
}
LOG.info("Catalog {} established connection to {} success", catalogName, jdbcUrl);
}
private String getDorisVersion() throws SQLException {
String dorisVersion = null;
try (PreparedStatement preparedStatement =
conn.prepareStatement(DorisCatalogUtil.QUERY_DORIS_VERSION_QUERY);
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
dorisVersion = resultSet.getString(2);
}
}
return dorisVersion;
}
@OverrideView on GitHub (pinned to cf67b549a7)