{"record":{"id":"53e034b7597e33bb","repo":"apache/cassandra","slug":"broadcast-address-cannot-be-a-wildcard-address","errorCode":null,"errorMessage":"broadcast_address cannot be a wildcard address (","messagePattern":"broadcast_address cannot be a wildcard address \\(","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"critical","filePath":"src/java/org/apache/cassandra/config/DatabaseDescriptor.java","lineNumber":1541,"sourceCode":"        else if (config.listen_interface != null)\n        {\n            listenAddress = getNetworkInterfaceAddress(config.listen_interface, \"listen_interface\", config.listen_interface_prefer_ipv6);\n        }\n\n        /* Gossip Address to broadcast */\n        if (config.broadcast_address != null)\n        {\n            try\n            {\n                broadcastAddress = InetAddress.getByName(config.broadcast_address);\n            }\n            catch (UnknownHostException e)\n            {\n                throw new ConfigurationException(\"Unknown broadcast_address '\" + config.broadcast_address + '\\'', false);\n            }\n\n            if (broadcastAddress.isAnyLocalAddress())\n                throw new ConfigurationException(\"broadcast_address cannot be a wildcard address (\" + config.broadcast_address + \")!\", false);\n        }\n\n        /* Local IP, hostname or interface to bind RPC server to */\n        if (config.rpc_address != null && config.rpc_interface != null)\n        {\n            throw new ConfigurationException(\"Set rpc_address OR rpc_interface, not both\", false);\n        }\n        else if (config.rpc_address != null)\n        {\n            try\n            {\n                rpcAddress = InetAddress.getByName(config.rpc_address);\n            }\n            catch (UnknownHostException e)\n            {\n                throw new ConfigurationException(\"Unknown host in rpc_address \" + config.rpc_address, false);\n            }\n        }","sourceCodeStart":1523,"sourceCodeEnd":1559,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L1523-L1559","documentation":"broadcast_address resolved successfully but to a wildcard address (0.0.0.0 or ::). Since broadcast_address is advertised to other nodes via gossip, a wildcard value is meaningless and DatabaseDescriptor throws this ConfigurationException at startup.","triggerScenarios":"InetAddress.getByName(config.broadcast_address) succeeds but returns isAnyLocalAddress() == true, e.g. broadcast_address: 0.0.0.0 in cassandra.yaml.","commonSituations":"Bulk-editing all address settings to 0.0.0.0 in containers; misunderstanding broadcast_address vs rpc_address semantics; copy-paste from rpc_address config.","solutions":["Set broadcast_address to the node's routable IP, or remove the key entirely (defaults to listen_address).","For NAT/public-endpoint setups use broadcast_address plus broadcast_rpc_address with real addresses."],"exampleFix":"# before (cassandra.yaml)\nbroadcast_address: 0.0.0.0\n# after\nbroadcast_address: 10.0.0.5","handlingStrategy":"validation","validationCode":"ba = yaml['broadcast_address']\nraise 'broadcast_address cannot be a wildcard address' if %w[0.0.0.0 ::].include?(ba)","typeGuard":null,"tryCatchPattern":"catch (ConfigurationException e) { logger.error(\"broadcast_address is wildcard: {}\", e.getMessage()); System.exit(2); }","preventionTips":["Never set broadcast_address to 0.0.0.0 or ::","Remember it defaults to listen_address; only set it for NAT/public routing","Validate generated configs with a wildcard-address check in CI"],"tags":["configuration","network","wildcard-address","gossip","cassandra"],"backgroundTag":"invalid-argument-value","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}