{"record":{"id":"32066c950da67b65","repo":"apache/pulsar","slug":"the-adminapiurl-is-empty-brokerclienttlsenabled","errorCode":null,"errorMessage":"The adminApiUrl is empty, brokerClientTlsEnabled: ${isTlsEnabled}","messagePattern":"The adminApiUrl is empty, brokerClientTlsEnabled: (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java","lineNumber":2027,"sourceCode":"                PulsarAdminBuilder builder = PulsarAdmin.builder();\n\n                ServiceConfiguration conf = pulsar.getConfig();\n                // Apply all arbitrary configuration. This must be called before setting any fields annotated as\n                // @Secret on the ClientConfigurationData object because of the way they are serialized.\n                // See https://github.com/apache/pulsar/issues/8509 for more information.\n                builder.loadConf(PropertiesUtils.filterAndMapProperties(conf.getProperties(), \"brokerClient_\"));\n\n                if (data.getAuthenticationPlugin() != null && data.getAuthenticationParameters() != null) {\n                    builder.authentication(data.getAuthenticationPlugin(), data.getAuthenticationParameters());\n                } else {\n                    builder.authentication(pulsar.getConfiguration().getBrokerClientAuthenticationPlugin(),\n                            pulsar.getConfiguration().getBrokerClientAuthenticationParameters());\n                }\n\n                boolean isTlsEnabled = data.isBrokerClientTlsEnabled() || conf.isBrokerClientTlsEnabled();\n                final String adminApiUrl = isTlsEnabled ? data.getServiceUrlTls() : data.getServiceUrl();\n                if (StringUtils.isEmpty(adminApiUrl)) {\n                    throw new IllegalArgumentException(\"The adminApiUrl is empty, brokerClientTlsEnabled: \"\n                            + isTlsEnabled);\n                }\n                builder.serviceHttpUrl(adminApiUrl);\n                if (data.isBrokerClientTlsEnabled()) {\n                    configAdminTlsSettings(builder,\n                            data.isBrokerClientTlsEnabledWithKeyStore(),\n                            data.isTlsAllowInsecureConnection(),\n                            data.getBrokerClientTlsTrustStoreType(),\n                            data.getBrokerClientTlsTrustStore(),\n                            data.getBrokerClientTlsTrustStorePassword(),\n                            data.getBrokerClientTlsKeyStoreType(),\n                            data.getBrokerClientTlsKeyStore(),\n                            data.getBrokerClientTlsKeyStorePassword(),\n                            data.getBrokerClientTrustCertsFilePath(),\n                            data.getBrokerClientKeyFilePath(),\n                            data.getBrokerClientCertificateFilePath(),\n                            pulsar.getConfiguration().isTlsHostnameVerificationEnabled(),\n                            resolveBrokerClientTlsFactory(data.getBrokerClientTlsFactoryClassName(),","sourceCodeStart":2009,"sourceCodeEnd":2045,"githubUrl":"https://github.com/apache/pulsar/blob/820761864ed8e2a7d2e52dd9763ad2ae117c1395/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java#L2009-L2045","documentation":"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.","triggerScenarios":"Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java:2027 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set webServiceUrl/webServiceUrlTls correctly in broker.conf","Align brokerClientTlsEnabled with the scheme of the admin URL"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"820761864ed8e2a7d2e52dd9763ad2ae117c1395","analyzedAt":"2026-09-06T00:14:20.138Z","contentChangedAt":"2026-09-06T00:14:20.138Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}