{"record":{"id":"6ae2c557fc3307aa","repo":"apache/cassandra","slug":"broadcast-rpc-address-cannot-be-a-wildcard-address","errorCode":null,"errorMessage":"broadcast_rpc_address cannot be a wildcard address (","messagePattern":"broadcast_rpc_address cannot be a wildcard address \\(","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"critical","filePath":"src/java/org/apache/cassandra/config/DatabaseDescriptor.java","lineNumber":1582,"sourceCode":"        else\n        {\n            rpcAddress = FBUtilities.getJustLocalAddress();\n        }\n\n        /* RPC address to broadcast */\n        if (config.broadcast_rpc_address != null)\n        {\n            try\n            {\n                broadcastRpcAddress = InetAddress.getByName(config.broadcast_rpc_address);\n            }\n            catch (UnknownHostException e)\n            {\n                throw new ConfigurationException(\"Unknown broadcast_rpc_address '\" + config.broadcast_rpc_address + '\\'', false);\n            }\n\n            if (broadcastRpcAddress.isAnyLocalAddress())\n                throw new ConfigurationException(\"broadcast_rpc_address cannot be a wildcard address (\" + config.broadcast_rpc_address + \")!\", false);\n        }\n        else\n        {\n            if (rpcAddress.isAnyLocalAddress())\n                throw new ConfigurationException(\"If rpc_address is set to a wildcard address (\" + config.rpc_address + \"), then \" +\n                                                 \"you must set broadcast_rpc_address to a value other than \" + config.rpc_address, false);\n        }\n    }\n\n    public static void applyEncryptionContext()\n    {\n        // always attempt to load the cipher factory, as we could be in the situation where the user has disabled encryption,\n        // but has existing commitlogs and sstables on disk that are still encrypted (and still need to be read)\n        encryptionContext = new EncryptionContext(conf.transparent_data_encryption_options);\n    }\n\n    public static void applySslContext()\n    {","sourceCodeStart":1564,"sourceCodeEnd":1600,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L1564-L1600","documentation":"Cassandra refuses to start if broadcast_rpc_address resolves to the wildcard address 0.0.0.0 (or ::), because a wildcard address cannot be meaningfully advertised to client drivers as the node's RPC endpoint. The check runs after resolution in applyAddressConfig.","triggerScenarios":"Setting broadcast_rpc_address: 0.0.0.0 (or a hostname resolving to the wildcard) in cassandra.yaml and calling DatabaseDescriptor.loadConfig() during startup.","commonSituations":"Operator copies rpc_address's wildcard value into broadcast_rpc_address misunderstanding that broadcast must be a specific routable address; templated configs that blanket-substitute bind addresses.","solutions":["Set broadcast_rpc_address to the node's specific routable IP or resolvable hostname","If clients connect directly and no NAT is involved, remove broadcast_rpc_address entirely and keep rpc_address: 0.0.0.0 for binding","In Kubernetes/NAT setups use the address reachable by clients (pod IP, Service/NAT address)"],"exampleFix":"// cassandra.yaml before\nrpc_address: 0.0.0.0\nbroadcast_rpc_address: 0.0.0.0\n// after\nrpc_address: 0.0.0.0\nbroadcast_rpc_address: 10.0.1.5","handlingStrategy":"validation","validationCode":"String addr = config.broadcast_rpc_address;\nif (addr != null) {\n    java.net.InetAddress ia = java.net.InetAddress.getByName(addr);\n    if (ia.isAnyLocalAddress()) throw new IllegalStateException(\"broadcast_rpc_address must not be wildcard: \" + addr);\n}","typeGuard":null,"tryCatchPattern":"try { DatabaseDescriptor.daemonInitialization(); } catch (ConfigurationException e) { /* fix yaml, not retryable */ }","preventionTips":["Never mirror rpc_address wildcard into broadcast_rpc_address","Treat broadcast_* settings as client-facing addresses, always specific","Lint cassandra.yaml for wildcard values in advertised-address fields"],"tags":["cassandra","configuration","wildcard-address"],"backgroundTag":"invalid-config-value","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}