apache/cassandra · critical · ConfigurationException

Configured " " was found, but had no addresses

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.

Solutions

  1. Assign an IP address to the configured interface before starting Cassandra
  2. Point cassandra.yaml at an interface that has an address (check with 'ip addr show <intf>')
  3. 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

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


AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10). Data as JSON: /api/errors/3095eae0b3eafed1. Report an issue: GitHub.

Appendix: 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)