apache/seatunnel · error · TableNotExistException

Table does not exist in catalog (TableNotExistException)

Error message

Table %s does not exist in catalog %s (TableNotExistException)

What it means

DorisCatalog.getTable verifies existence first and throws TableNotExistException(catalogName, tablePath) when the requested db.table is absent from the Doris cluster — the standard catalog signal that the caller referenced a non-existent table.

Solutions

  1. Check database and table names in the job config (case sensitivity, catalog prefix)
  2. Create the table first or enable auto-create if applicable
  3. List existing tables to confirm the expected name
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:248 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/5b0f0dfe7d14fd5b. Report an issue: GitHub.

Appendix: source

Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:248

        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(
                        tablePath, rs, builder, options, Collections.emptyList());
                return CatalogTable.of(
                        TableIdentifier.of(
                                catalogName, tablePath.getDatabaseName(), tablePath.getTableName()),
                        builder.build(),
                        options,
                        Collections.emptyList(),
                        "",
                        catalogName);
            }

View on GitHub (pinned to cf67b549a7)