apache/seatunnel · error · CatalogException

An exception occurred while obtaining the table

Error message

An exception occurred while obtaining the table

What it means

KuduCatalog.getTable() builds a CatalogTable from the Kudu schema; any exception during schema retrieval or mapping is caught and rethrown as a CatalogException with this generic message. The original exception is attached as the cause.

Source

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

                                columnSchema.isNullable(),
                                columnSchema.getDefaultValue(),
                                columnSchema.getComment());
                    });

            primaryKey.ifPresent(builder::primaryKey);

            TableIdentifier tableIdentifier =
                    TableIdentifier.of(
                            catalogName, tablePath.getDatabaseName(), tablePath.getTableName());

            return CatalogTable.of(
                    tableIdentifier,
                    builder.build(),
                    buildConnectorOptions(tablePath),
                    Collections.emptyList(),
                    tableName);
        } catch (Exception e) {
            throw new CatalogException("An exception occurred while obtaining the table", e);
        }
    }

    private Map<String, String> buildConnectorOptions(TablePath tablePath) {
        Map<String, String> options = new HashMap<>(8);
        options.put("connector", "kudu");
        options.put(KuduBaseOptions.TABLE_NAME.key(), tablePath.getFullName());
        options.put(KuduBaseOptions.MASTER.key(), config.getMasters());
        options.put(KuduBaseOptions.WORKER_COUNT.key(), config.getWorkerCount().toString());
        options.put(
                KuduBaseOptions.OPERATION_TIMEOUT.key(), config.getOperationTimeout().toString());
        options.put(
                KuduBaseOptions.ADMIN_OPERATION_TIMEOUT.key(),
                config.getAdminOperationTimeout().toString());
        if (config.getEnableKerberos()) {
            options.put(KuduBaseOptions.KERBEROS_PRINCIPAL.key(), config.getPrincipal());
            options.put(KuduBaseOptions.KERBEROS_KEYTAB.key(), config.getKeytab());
            if (StringUtils.isNotBlank(config.getKrb5conf())) {

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Confirm the table exists (catalog.tableExists)
  2. Inspect the cause exception for the actual failure
  3. Verify schema types are supported by KuduTypeMapper
  4. Check cluster connectivity and permissions
Defensive patterns

Strategy: try-catch

Validate before calling

// Pre-check: if (!catalog.databaseExists(db) || !catalog.tableExists(tablePath)) throw ...

Try / catch

try { CatalogTable t = catalog.getTable(tablePath); } catch (CatalogException e) { Throwable root = e.getCause(); /* handle missing table / RPC failure */ }

Prevention

When it happens

Trigger: Calling catalog.getTable(tablePath) (directly or via parseKuduSourceConfig / catalogTable) when opening the Kudu table, reading its schema, or mapping columns throws — table missing, client RPC failure, or unsupported schema element.

Common situations: Table deleted between existence check and read; schema containing types the mapper cannot handle; transient RPC failure to a tablet server.

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/4c6617b120bbe3cd. Report an issue: GitHub.