apache/cassandra · critical · ConfigurationException
Configured ${configName} "${intf}" was found, but had no add
Error message
Configured ${configName} "${intf}" was found, but had no addresses What it means
The configured network interface was found by name, but enumerating its InetAddress values returned nothing — the interface exists yet has no usable address (typically because it has no IP assigned). Cassandra throws ConfigurationException since it cannot derive a listen/rpc address.
Source
Thrown at src/java/org/apache/cassandra/config/DatabaseDescriptor.java:545
if (!hasLoggedConfig)
{
hasLoggedConfig = true;
Config.log(config);
}
return config;
}
private static InetAddress getNetworkInterfaceAddress(String intf, String configName, boolean preferIPv6) throws ConfigurationException
{
try
{
NetworkInterface ni = NetworkInterface.getByName(intf);
if (ni == null)
throw new ConfigurationException("Configured " + configName + " \"" + intf + "\" could not be found", false);
Enumeration<InetAddress> addrs = ni.getInetAddresses();
if (!addrs.hasMoreElements())
throw new ConfigurationException("Configured " + configName + " \"" + intf + "\" was found, but had no addresses", false);
/*
* Try to return the first address of the preferred type, otherwise return the first address
*/
InetAddress retval = null;
while (addrs.hasMoreElements())
{
InetAddress temp = addrs.nextElement();
if (preferIPv6 && temp instanceof Inet6Address) return temp;
if (!preferIPv6 && temp instanceof Inet4Address) return temp;
if (retval == null) retval = temp;
}
return retval;
}
catch (SocketException e)
{
throw new ConfigurationException("Configured " + configName + " \"" + intf + "\" caused an exception", e);
}View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Assign an IP address to the configured interface before starting Cassandra
- Point cassandra.yaml at an interface that has an address (check with 'ip addr show <intf>')
- Use explicit listen_address/rpc_address IPs instead of interface names
Example fix
# before listen_interface: dummy0 # after listen_interface: eth0 # or listen_address: 192.168.1.10
Defensive patterns
Strategy: validation
Validate before calling
NetworkInterface ni = NetworkInterface.getByName(intf); boolean hasAddr = ni != null && ni.getInetAddresses().hasMoreElements(); if (!hasAddr) throw new IllegalStateException("interface has no address: " + intf); Try / catch
try { DatabaseDescriptor.daemonInitialization(); } catch (ConfigurationException e) { log.error("interface {} not usable: {}", intf, e.getMessage()); } Prevention
- Ensure network is fully up (DHCP lease acquired) before starting Cassandra as a service
- Use systemd network-online.target / cloud-init completion ordering
- Prefer explicit IPs for stateless container deployments
When it happens
Trigger: cassandra.yaml points listen_interface/rpc_interface at an interface that is up but unconfigured (no IP), or a loopback-only/VPN interface with no addresses at startup time.
Common situations: Starting Cassandra before DHCP/network configuration completes in VMs or containers, interfaces brought up without an address, or pointing at a tunnel/dummy interface.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- Configured ${configName} "${intf}" could not be found
- Configured ${configName} "${intf}" caused an exception
- Missing required directive CommitLogSync
- Set listen_address OR listen_interface, not both
- Invalid data storage: ${value}. It shouldn't be more than ${
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/3095eae0b3eafed1.
Report an issue: GitHub.