{"record":{"id":"67d89c5c4f53f4aa","repo":"apache/seatunnel","slug":"namespace-delete-exception","errorCode":"NAMESPACE_DELETE_EXCEPTION","errorMessage":"HbaseConnectorErrorCode.NAMESPACE_DELETE_EXCEPTION.getErrorMessage()","messagePattern":"HbaseConnectorErrorCode\\.NAMESPACE_DELETE_EXCEPTION\\.getErrorMessage\\(\\)","errorType":"error_code","errorClass":"HbaseConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/client/HbaseClient.java","lineNumber":264,"sourceCode":"            admin.deleteTable(table);\n        } catch (IOException e) {\n            throw new HbaseConnectorException(\n                    HbaseConnectorErrorCode.TABLE_DELETE_EXCEPTION,\n                    HbaseConnectorErrorCode.TABLE_DELETE_EXCEPTION.getErrorMessage(),\n                    e);\n        }\n    }\n\n    /**\n     * Create a namespace.\n     *\n     * @param namespace namespace name\n     */\n    public void createNamespace(String namespace) {\n        try {\n            admin.createNamespace(NamespaceDescriptor.create(namespace).build());\n        } catch (IOException e) {\n            throw new HbaseConnectorException(\n                    HbaseConnectorErrorCode.NAMESPACE_CREATE_EXCEPTION,\n                    HbaseConnectorErrorCode.NAMESPACE_CREATE_EXCEPTION.getErrorMessage(),\n                    e);\n        }\n    }\n\n    /**\n     * Drop a namespace.\n     *\n     * @param namespace namespace name\n     */\n    public void deleteNamespace(String namespace) {\n        try {\n            admin.deleteNamespace(namespace);\n        } catch (IOException e) {\n            throw new HbaseConnectorException(\n                    HbaseConnectorErrorCode.NAMESPACE_DELETE_EXCEPTION,\n                    HbaseConnectorErrorCode.NAMESPACE_DELETE_EXCEPTION.getErrorMessage(),","sourceCodeStart":246,"sourceCodeEnd":282,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/client/HbaseClient.java#L246-L282","documentation":"HBase admin operation for creating a namespace failed with an IOException, wrapped and rethrown as HbaseConnectorException with NAMESPACE_CREATE_EXCEPTION. The library throws this because the HBase Admin.createNamespace call requires an active cluster connection and the namespace must not already exist. It signals that namespace creation via the admin API could not complete.","triggerScenarios":"Calling HbaseClient.createNamespace(namespace) when admin.createNamespace(NamespaceDescriptor.create(namespace).build()) throws IOException — e.g. cluster unreachable, namespace already exists (NamespaceExistException), or insufficient permissions.","commonSituations":"Running a Hbase sink job against a cluster where the namespace already exists from a previous run; HMaster unreachable; user lacks CREATE permission on the namespace.","solutions":["Check whether the namespace already exists with HBase shell 'list_namespace' and skip creation if so","Verify HBase cluster connectivity (zookeeper quorum, hbase.zookeeper.quorum config)","Ensure the submitting user has CREATE permission on the namespace","Inspect the wrapped cause (getCause) for the concrete IOException subclass"],"exampleFix":"// before\nclient.createNamespace(\"ns\");\n// after\nif (!client.namespaceExists(\"ns\")) { // guard via admin.getNamespaceDescriptor\n    client.createNamespace(\"ns\");\n}","handlingStrategy":"validation","validationCode":"try (Admin admin = connection.getAdmin()) {\n    boolean exists = false;\n    try { admin.getNamespaceDescriptor(DescriptorBuilder... ); } catch (NamespaceNotFoundException e) { exists = false; }\n    // create only if !exists\n}","typeGuard":"boolean namespaceExists(Admin admin, String ns) {\n    try { admin.getNamespaceDescriptor(ns); return true; }\n    catch (NamespaceNotFoundException e) { return false; }\n    catch (IOException e) { throw new UncheckedIOException(e); }\n}","tryCatchPattern":"try { client.createNamespace(ns); }\ncatch (HbaseConnectorException e) {\n    if (e.getCause() instanceof NamespaceExistException) { /* idempotent: skip */ }\n    else throw e;\n}","preventionTips":["Check namespace existence before create (list_namespace)","Make namespace creation idempotent in job setup","Validate HBase connectivity before admin operations"],"tags":["hbase","namespace","admin-operation","io-exception"],"backgroundTag":"database-write-failed","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}