{"record":{"id":"4c6617b120bbe3cd","repo":"apache/seatunnel","slug":"an-exception-occurred-while-obtaining-the-table","errorCode":null,"errorMessage":"An exception occurred while obtaining the table","messagePattern":"An exception occurred while obtaining the table","errorType":"exception","errorClass":"CatalogException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/catalog/KuduCatalog.java","lineNumber":197,"sourceCode":"                                columnSchema.isNullable(),\n                                columnSchema.getDefaultValue(),\n                                columnSchema.getComment());\n                    });\n\n            primaryKey.ifPresent(builder::primaryKey);\n\n            TableIdentifier tableIdentifier =\n                    TableIdentifier.of(\n                            catalogName, tablePath.getDatabaseName(), tablePath.getTableName());\n\n            return CatalogTable.of(\n                    tableIdentifier,\n                    builder.build(),\n                    buildConnectorOptions(tablePath),\n                    Collections.emptyList(),\n                    tableName);\n        } catch (Exception e) {\n            throw new CatalogException(\"An exception occurred while obtaining the table\", e);\n        }\n    }\n\n    private Map<String, String> buildConnectorOptions(TablePath tablePath) {\n        Map<String, String> options = new HashMap<>(8);\n        options.put(\"connector\", \"kudu\");\n        options.put(KuduBaseOptions.TABLE_NAME.key(), tablePath.getFullName());\n        options.put(KuduBaseOptions.MASTER.key(), config.getMasters());\n        options.put(KuduBaseOptions.WORKER_COUNT.key(), config.getWorkerCount().toString());\n        options.put(\n                KuduBaseOptions.OPERATION_TIMEOUT.key(), config.getOperationTimeout().toString());\n        options.put(\n                KuduBaseOptions.ADMIN_OPERATION_TIMEOUT.key(),\n                config.getAdminOperationTimeout().toString());\n        if (config.getEnableKerberos()) {\n            options.put(KuduBaseOptions.KERBEROS_PRINCIPAL.key(), config.getPrincipal());\n            options.put(KuduBaseOptions.KERBEROS_KEYTAB.key(), config.getKeytab());\n            if (StringUtils.isNotBlank(config.getKrb5conf())) {","sourceCodeStart":179,"sourceCodeEnd":215,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/catalog/KuduCatalog.java#L179-L215","documentation":"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.","triggerScenarios":"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.","commonSituations":"Table deleted between existence check and read; schema containing types the mapper cannot handle; transient RPC failure to a tablet server.","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"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Pre-check: if (!catalog.databaseExists(db) || !catalog.tableExists(tablePath)) throw ...","typeGuard":null,"tryCatchPattern":"try { CatalogTable t = catalog.getTable(tablePath); } catch (CatalogException e) { Throwable root = e.getCause(); /* handle missing table / RPC failure */ }","preventionTips":["Call tableExists before getTable","Keep schema stable during the job; avoid concurrent DDL","Log e.getCause() to find the real failure"],"tags":["kudu","catalog","schema"],"backgroundTag":"database-query-failed","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}