apache/pulsar · error · RestException

Cluster ${cluster} does not exist.

Error message

Cluster ${cluster} does not exist.

What it means

PulsarWebResource namespace validation: the cluster named in the namespace (or request) is not registered in this Pulsar instance's cluster list, so the operation cannot proceed against an unknown cluster.

Source

Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/web/PulsarWebResource.java:1177

    public CompletableFuture<Void> validatePoliciesReadOnlyAccessAsync() {
        return namespaceResources().getPoliciesReadOnlyAsync().thenAccept(readOnly -> {
            if (readOnly) {
                    log.debug("Policies are read-only. Broker cannot do read-write operations");
                                throw new RestException(Status.FORBIDDEN,
                                        "Broker is forbidden to do read-write operations");
            }
        });
    }

    protected CompletableFuture<Void> hasActiveNamespace(String tenant) {
        return tenantResources().hasActiveNamespace(tenant);
    }

    protected void validateClusterExists(String cluster) {
        try {
            if (!clusterResources().clusterExists(cluster)) {
                throw new RestException(Status.PRECONDITION_FAILED, "Cluster " + cluster + " does not exist.");
            }
        } catch (Exception e) {
            throw new RestException(e);
        }
    }

    /**
     * Redirect the call to the specified broker.
     *
     * @param brokerId broker's id (lookup service address)
     */
    protected CompletableFuture<Void> maybeRedirectToBroker(String brokerId) {
        // backwards compatibility
        String cleanedBrokerId = brokerId.replaceFirst("http[s]?://", "");
        if (pulsar.getBrokerId().equals(cleanedBrokerId)
                // backwards compatibility
                || ("http://" + cleanedBrokerId).equals(pulsar().getWebServiceAddress())
                || ("https://" + cleanedBrokerId).equals(pulsar().getWebServiceAddressTls())) {

View on GitHub (pinned to 820761864e)

Solutions

  1. Register the cluster (pulsar-admin clusters create) or fix its name
  2. Check replicationClusters entries for stale cluster names
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/web/PulsarWebResource.java:1177 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/pulsar@820761864e (2026-09-06). Data as JSON: /api/errors/824d01951aa22e09. Report an issue: GitHub.