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
- Confirm the table exists (catalog.tableExists)
- Inspect the cause exception for the actual failure
- Verify schema types are supported by KuduTypeMapper
- 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
- Call tableExists before getTable
- Keep schema stable during the job; avoid concurrent DDL
- Log e.getCause() to find the real failure
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
- UNSUPPORTED_DATA_TYPE
- Failed close kudu client
- Failed listing database in catalog %s
- Could not delete table %s
- UNSUPPORTED_DATA_TYPE
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/4c6617b120bbe3cd.
Report an issue: GitHub.