apache/seatunnel · error · CatalogException
check table [ ] exists failed
Error message
check table [%s] exists failed
What it means
DorisCatalog.tableExists wraps SQLException from the table-existence query into CatalogException('check table [%s] exists failed'); the check itself failed (connection loss or SQL error), which is different from the table not existing.
Solutions
- Re-establish or validate the JDBC connection before retrying the check
- Verify the database-qualified table name is correct
- Ensure the catalog user can query metadata about the table
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:238 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/b43b52fd6c8e2ce9.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:238
} catch (SQLException e) {
throw new CatalogException(
String.format("list tables of database [%s] failed", databaseName), e);
}
Collections.sort(tables);
return tables;
}
@Override
public boolean tableExists(TablePath tablePath) throws CatalogException {
try (PreparedStatement ps =
conn.prepareStatement(DorisCatalogUtil.TABLES_QUERY_WITH_IDENTIFIER_QUERY)) {
ps.setString(1, tablePath.getDatabaseName());
ps.setString(2, tablePath.getTableName());
try (ResultSet rs = ps.executeQuery()) {
return rs.next();
}
} catch (SQLException e) {
throw new CatalogException(
String.format("check table [%s] exists failed", tablePath.getFullName()), e);
}
}
@Override
public CatalogTable getTable(TablePath tablePath)
throws CatalogException, TableNotExistException {
if (!tableExists(tablePath)) {
throw new TableNotExistException(catalogName, tablePath);
}
TableSchema.Builder builder = TableSchema.builder();
try (PreparedStatement ps = conn.prepareStatement(DorisCatalogUtil.TABLE_SCHEMA_QUERY)) {
ps.setString(1, tablePath.getDatabaseName());
ps.setString(2, tablePath.getTableName());
try (ResultSet rs = ps.executeQuery()) {
Map<String, String> options = connectorOptions();
buildTableSchemaWithErrorCheck(View on GitHub (pinned to cf67b549a7)