apache/cassandra · critical · ConfigurationException
broadcast_address cannot be a wildcard address (
Error message
broadcast_address cannot be a wildcard address (
What it means
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.
Source
Thrown at src/java/org/apache/cassandra/config/DatabaseDescriptor.java:1541
else if (config.listen_interface != null)
{
listenAddress = getNetworkInterfaceAddress(config.listen_interface, "listen_interface", config.listen_interface_prefer_ipv6);
}
/* Gossip Address to broadcast */
if (config.broadcast_address != null)
{
try
{
broadcastAddress = InetAddress.getByName(config.broadcast_address);
}
catch (UnknownHostException e)
{
throw new ConfigurationException("Unknown broadcast_address '" + config.broadcast_address + '\'', false);
}
if (broadcastAddress.isAnyLocalAddress())
throw new ConfigurationException("broadcast_address cannot be a wildcard address (" + config.broadcast_address + ")!", false);
}
/* Local IP, hostname or interface to bind RPC server to */
if (config.rpc_address != null && config.rpc_interface != null)
{
throw new ConfigurationException("Set rpc_address OR rpc_interface, not both", false);
}
else if (config.rpc_address != null)
{
try
{
rpcAddress = InetAddress.getByName(config.rpc_address);
}
catch (UnknownHostException e)
{
throw new ConfigurationException("Unknown host in rpc_address " + config.rpc_address, false);
}
}View on GitHub (pinned to 88fd0f6a0e)
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.
Example fix
# before (cassandra.yaml) broadcast_address: 0.0.0.0 # after broadcast_address: 10.0.0.5
Defensive patterns
Strategy: validation
Validate before calling
ba = yaml['broadcast_address'] raise 'broadcast_address cannot be a wildcard address' if %w[0.0.0.0 ::].include?(ba)
Try / catch
catch (ConfigurationException e) { logger.error("broadcast_address is wildcard: {}", e.getMessage()); System.exit(2); } Prevention
- 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
When it happens
Trigger: InetAddress.getByName(config.broadcast_address) succeeds but returns isAnyLocalAddress() == true, e.g. broadcast_address: 0.0.0.0 in cassandra.yaml.
Common situations: 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.
Understand the failure class
Background: "Must be a positive integer", "Invalid value", "Unsupported": the invalid-argument-value error family, when a library rejects the value you pass — this error's family across 35 libraries.
Related errors
- listen_address cannot be a wildcard address (
- Unknown broadcast_address '
- Set listen_address OR listen_interface, not both
- Unknown listen_address '
- Set rpc_address OR rpc_interface, not both
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/53e034b7597e33bb.
Report an issue: GitHub.