apache/seatunnel · error · CatalogException

Failed listing database in catalog %s

Error message

Failed listing database in catalog %s

What it means

KuduCatalog.listTables(databaseName) calls kuduClient.getTablesList().getTablesList() and wraps any KuduException in a CatalogException with this (slightly misleading) message. It means listing tables from the Kudu cluster failed. Note the message says 'database' but it lists tables.

Source

Thrown at seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/catalog/KuduCatalog.java:122

    }

    @Override
    public boolean databaseExists(String databaseName) throws CatalogException {
        return listDatabases().contains(databaseName);
    }

    @Override
    public List<String> listDatabases() throws CatalogException {
        return Collections.singletonList(getDefaultDatabase());
    }

    @Override
    public List<String> listTables(String databaseName)
            throws CatalogException, DatabaseNotExistException {
        try {
            return kuduClient.getTablesList().getTablesList();
        } catch (KuduException e) {
            throw new CatalogException(
                    String.format("Failed listing database in catalog %s", this.catalogName), e);
        }
    }

    @Override
    public boolean tableExists(TablePath tablePath) throws CatalogException {
        checkNotNull(tablePath);
        try {
            return kuduClient.tableExists(tablePath.getFullName());
        } catch (KuduException e) {
            throw new CatalogException(e);
        }
    }

    @Override
    public CatalogTable getTable(TablePath tablePath)
            throws CatalogException, TableNotExistException {
        checkNotNull(tablePath);

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Verify kudu.master connectivity (network/firewall/DNS)
  2. Confirm Kudu master processes are healthy
  3. Check authentication/credentials for the Kudu cluster
  4. Inspect the wrapped KuduException cause for the RPC error detail
Defensive patterns

Strategy: try-catch

Validate before calling

// Pre-check: catalog.listDatabases().contains(databaseName)

Try / catch

try { tables = catalog.listTables(db); } catch (CatalogException e) { throw new RuntimeException("Kudu table listing failed: " + e.getCause().getMessage(), e); }

Prevention

When it happens

Trigger: Calling catalog.listTables(databaseName) (directly or via allTables) when the KuduClient getTablesList RPC throws a KuduException — cluster unreachable, auth failure, or master error.

Common situations: Kudu masters down or misconfigured kudu.master address; Kerberos/SASL auth issues; catalog snapshot listing during a cluster upgrade.

Understand the failure class

Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/44d88419c1e6bb92. Report an issue: GitHub.