apache/seatunnel · error · HbaseConnectorException

NAMESPACE_DELETE_EXCEPTION

NAMESPACE_DELETE_EXCEPTION

Error message

HbaseConnectorErrorCode.NAMESPACE_DELETE_EXCEPTION.getErrorMessage()

What it means

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.

Solutions

  1. Check whether the namespace already exists with HBase shell 'list_namespace' and skip creation if so
  2. Verify HBase cluster connectivity (zookeeper quorum, hbase.zookeeper.quorum config)
  3. Ensure the submitting user has CREATE permission on the namespace
  4. Inspect the wrapped cause (getCause) for the concrete IOException subclass

Example fix

// before
client.createNamespace("ns");
// after
if (!client.namespaceExists("ns")) { // guard via admin.getNamespaceDescriptor
    client.createNamespace("ns");
}
Defensive patterns

Strategy: validation

Validate before calling

try (Admin admin = connection.getAdmin()) {
    boolean exists = false;
    try { admin.getNamespaceDescriptor(DescriptorBuilder... ); } catch (NamespaceNotFoundException e) { exists = false; }
    // create only if !exists
}

Type guard

boolean namespaceExists(Admin admin, String ns) {
    try { admin.getNamespaceDescriptor(ns); return true; }
    catch (NamespaceNotFoundException e) { return false; }
    catch (IOException e) { throw new UncheckedIOException(e); }
}

Try / catch

try { client.createNamespace(ns); }
catch (HbaseConnectorException e) {
    if (e.getCause() instanceof NamespaceExistException) { /* idempotent: skip */ }
    else throw e;
}

Prevention

When it happens

Trigger: Calling HbaseClient.createNamespace(namespace) when admin.createNamespace(NamespaceDescriptor.create(namespace).build()) throws IOException — e.g. cluster unreachable, namespace already exists (NamespaceExistException), or insufficient permissions.

Common situations: 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.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/67d89c5c4f53f4aa. Report an issue: GitHub.

Appendix: source

Thrown at seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/client/HbaseClient.java:264

            admin.deleteTable(table);
        } catch (IOException e) {
            throw new HbaseConnectorException(
                    HbaseConnectorErrorCode.TABLE_DELETE_EXCEPTION,
                    HbaseConnectorErrorCode.TABLE_DELETE_EXCEPTION.getErrorMessage(),
                    e);
        }
    }

    /**
     * Create a namespace.
     *
     * @param namespace namespace name
     */
    public void createNamespace(String namespace) {
        try {
            admin.createNamespace(NamespaceDescriptor.create(namespace).build());
        } catch (IOException e) {
            throw new HbaseConnectorException(
                    HbaseConnectorErrorCode.NAMESPACE_CREATE_EXCEPTION,
                    HbaseConnectorErrorCode.NAMESPACE_CREATE_EXCEPTION.getErrorMessage(),
                    e);
        }
    }

    /**
     * Drop a namespace.
     *
     * @param namespace namespace name
     */
    public void deleteNamespace(String namespace) {
        try {
            admin.deleteNamespace(namespace);
        } catch (IOException e) {
            throw new HbaseConnectorException(
                    HbaseConnectorErrorCode.NAMESPACE_DELETE_EXCEPTION,
                    HbaseConnectorErrorCode.NAMESPACE_DELETE_EXCEPTION.getErrorMessage(),

View on GitHub (pinned to cf67b549a7)