{"record":{"id":"53e7861997819b2f","repo":"apache/seatunnel","slug":"tablenotexistexception-table-tablepath-does","errorCode":null,"errorMessage":"TableNotExistException: table '${tablePath}' does not exist in catalog '${catalogName}'","messagePattern":"TableNotExistException: table '(.+?)' does not exist in catalog '(.+?)'","errorType":"exception","errorClass":"TableNotExistException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/catalog/HbaseCatalog.java","lineNumber":147,"sourceCode":"            }\n            return;\n        }\n        hbaseClient.createTable(\n                tablePath.getDatabaseName(),\n                tablePath.getTableName(),\n                hbaseParameters.getFamilyNames().values().stream()\n                        .filter(value -> !\"all_columns\".equals(value))\n                        .collect(Collectors.toList()),\n                ignoreIfExists);\n    }\n\n    @Override\n    public void dropTable(TablePath tablePath, boolean ignoreIfNotExists)\n            throws TableNotExistException, CatalogException {\n        checkNotNull(tablePath);\n        if (!tableExists(tablePath)) {\n            if (!ignoreIfNotExists) {\n                throw new TableNotExistException(catalogName, tablePath);\n            }\n            return;\n        }\n        hbaseClient.dropTable(tablePath.getDatabaseName(), tablePath.getTableName());\n    }\n\n    @Override\n    public void createDatabase(TablePath tablePath, boolean ignoreIfExists)\n            throws DatabaseAlreadyExistException, CatalogException {\n        if (databaseExists(tablePath.getDatabaseName())) {\n            if (!ignoreIfExists) {\n                throw new DatabaseAlreadyExistException(catalogName, tablePath.getDatabaseName());\n            }\n            return;\n        }\n        hbaseClient.createNamespace(tablePath.getDatabaseName());\n    }\n","sourceCodeStart":129,"sourceCodeEnd":165,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/catalog/HbaseCatalog.java#L129-L165","documentation":"Thrown by HbaseCatalog.dropTable when the target HBase table does not exist and ignoreIfNotExists is false. Standard catalog TableNotExistException sentinel; the missing table and catalog name identify the failed lookup.","triggerScenarios":"Calling dropTable(tablePath, ignoreIfNotExists=false) where tableExists returns false (table never created, already dropped, or wrong namespace/name).","commonSituations":"Cleanup scripts running twice; typos in table or namespace name; case mismatch (HBase table names are case-sensitive); table disabled but effectively absent in the connector's check.","solutions":["Pass ignoreIfNotExists = true for idempotent cleanup.","Confirm the exact namespace:table name with HBase shell 'list'.","Check whether another process already dropped the table."],"exampleFix":"// before\ncatalog.dropTable(path, false); // fails if already dropped\n// after\ncatalog.dropTable(path, true);","handlingStrategy":"validation","validationCode":"if (catalog.tableExists(tablePath)) {\n    catalog.dropTable(tablePath, false);\n}","typeGuard":null,"tryCatchPattern":"try {\n    catalog.dropTable(tablePath, false);\n} catch (TableNotExistException e) {\n    LOG.info(\"Table {} already gone; nothing to drop\", tablePath.getFullName());\n}","preventionTips":["Use ignoreIfNotExists = true for cleanup scripts.","Check tableExists before dropping.","HBase names are case-sensitive — verify exact namespace:table strings.","Handle re-runs of teardown logic gracefully."],"tags":["hbase","catalog","delete"],"backgroundTag":"resource-not-found","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"}