apache/pulsar · error · IllegalArgumentException
The adminApiUrl is empty, brokerClientTlsEnabled: ${isTlsEna
Error message
The adminApiUrl is empty, brokerClientTlsEnabled: ${isTlsEnabled} What it means
While building the PulsarAdmin client for the broker to talk to itself, the web service address (adminApiUrl) resolved to empty under the current brokerClientTlsEnabled setting, so no admin endpoint is available to connect to.
Source
Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java:2027
PulsarAdminBuilder builder = PulsarAdmin.builder();
ServiceConfiguration conf = pulsar.getConfig();
// Apply all arbitrary configuration. This must be called before setting any fields annotated as
// @Secret on the ClientConfigurationData object because of the way they are serialized.
// See https://github.com/apache/pulsar/issues/8509 for more information.
builder.loadConf(PropertiesUtils.filterAndMapProperties(conf.getProperties(), "brokerClient_"));
if (data.getAuthenticationPlugin() != null && data.getAuthenticationParameters() != null) {
builder.authentication(data.getAuthenticationPlugin(), data.getAuthenticationParameters());
} else {
builder.authentication(pulsar.getConfiguration().getBrokerClientAuthenticationPlugin(),
pulsar.getConfiguration().getBrokerClientAuthenticationParameters());
}
boolean isTlsEnabled = data.isBrokerClientTlsEnabled() || conf.isBrokerClientTlsEnabled();
final String adminApiUrl = isTlsEnabled ? data.getServiceUrlTls() : data.getServiceUrl();
if (StringUtils.isEmpty(adminApiUrl)) {
throw new IllegalArgumentException("The adminApiUrl is empty, brokerClientTlsEnabled: "
+ isTlsEnabled);
}
builder.serviceHttpUrl(adminApiUrl);
if (data.isBrokerClientTlsEnabled()) {
configAdminTlsSettings(builder,
data.isBrokerClientTlsEnabledWithKeyStore(),
data.isTlsAllowInsecureConnection(),
data.getBrokerClientTlsTrustStoreType(),
data.getBrokerClientTlsTrustStore(),
data.getBrokerClientTlsTrustStorePassword(),
data.getBrokerClientTlsKeyStoreType(),
data.getBrokerClientTlsKeyStore(),
data.getBrokerClientTlsKeyStorePassword(),
data.getBrokerClientTrustCertsFilePath(),
data.getBrokerClientKeyFilePath(),
data.getBrokerClientCertificateFilePath(),
pulsar.getConfiguration().isTlsHostnameVerificationEnabled(),
resolveBrokerClientTlsFactory(data.getBrokerClientTlsFactoryClassName(),View on GitHub (pinned to 820761864e)
Solutions
- Set webServiceUrl/webServiceUrlTls correctly in broker.conf
- Align brokerClientTlsEnabled with the scheme of the admin URL
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java:2027 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/32066c950da67b65.
Report an issue: GitHub.