apache/pulsar · error · PulsarServerException

the broker do not have

Error message

the broker do not have ${advertisedListenerName} listener

What it means

BrokerLookupData.toLookupResult: the lookup request asked for an advertised listener name (e.g., a custom listener) that this broker does not have configured in its advertisedListeners map, so the lookup cannot return an address for it.

Solutions

  1. Add the listener to advertisedListeners on every broker and restart
  2. Query with a listener name that exists in the broker configuration
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/data/BrokerLookupData.java:94 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/7423563c59790fe0. Report an issue: GitHub.

Appendix: source

Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/data/BrokerLookupData.java:94

    @Override
    public Optional<String> getProtocol(String protocol) {
        return Optional.ofNullable(this.protocols().get(protocol));
    }

    @Override
    public String getLoadManagerClassName() {
        return this.loadManagerClassName;
    }

    @Override
    public long getStartTimestamp() {
        return this.startTimestamp;
    }

    public LookupResult toLookupResult(LookupOptions options) throws PulsarServerException {
        if (options.hasAdvertisedListenerName()
                && !advertisedListeners.containsKey(options.getAdvertisedListenerName())) {
            throw new PulsarServerException("the broker do not have "
                    + options.getAdvertisedListenerName() + " listener");
        }
        return LookupResult.create(this, options);
    }

    public LookupResult toLoadManagerMigrationLookupResult(LookupOptions options) {
        return LookupResult.create(this, options, false);
    }

    public NamespaceEphemeralData toNamespaceEphemeralData() {
        return new NamespaceEphemeralData(brokerId, pulsarServiceUrl, pulsarServiceUrlTls, webServiceUrl,
                webServiceUrlTls, false, advertisedListeners);
    }
}

View on GitHub (pinned to 820761864e)