apache/seatunnel · error · CatalogException
Failed create table in catalog
Error message
Failed create table in catalog %s, sql :[%s]
What it means
Thrown by StarRocksCatalog.createTable when executing the generated CREATE TABLE DDL fails; wraps the SQL exception with the catalog name and the full DDL that failed, so the offending statement is visible in the error.
Solutions
- Fix schema/DDL issues reported by StarRunks (types, keys, options)
- Check that the table does not already conflict with existing objects
- Inspect the wrapped SQLException alongside the logged DDL for the exact failure
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksCatalog.java:398 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/96a2196e393dca6e.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksCatalog.java:398
@SuppressWarnings("MagicNumber")
private Map<String, String> buildConnectorOptions(TablePath tablePath) {
Map<String, String> options = new HashMap<>(8);
options.put("connector", "starrocks");
options.put("url", baseUrl + tablePath.getDatabaseName());
options.put("table-name", tablePath.getFullName());
return options;
}
public void createTable(String sql)
throws TableAlreadyExistException, DatabaseNotExistException, CatalogException {
try {
log.info("create table sql is :{}", sql);
try (Statement stmt = conn.createStatement()) {
stmt.execute(sql);
}
} catch (Exception e) {
throw new CatalogException(
String.format("Failed create table in catalog %s, sql :[%s]", catalogName, sql),
e);
}
}
/**
* URL has to be without database, like "jdbc:mysql://localhost:5432/" or
* "jdbc:mysql://localhost:5432" rather than "jdbc:mysql://localhost:5432/db".
*/
public static boolean validateJdbcUrlWithoutDatabase(String url) {
String[] parts = url.trim().split("\\/+");
return parts.length == 2;
}
/**
* URL has to be with database, like "jdbc:mysql://localhost:5432/db" rather than
* "jdbc:mysql://localhost:5432/".View on GitHub (pinned to cf67b549a7)