{"record":{"id":"909f0c82a4b8f67e","repo":"apache/cassandra","slug":"unknown-broadcast-rpc-address","errorCode":null,"errorMessage":"Unknown broadcast_rpc_address '","messagePattern":"Unknown broadcast_rpc_address '","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"critical","filePath":"src/java/org/apache/cassandra/config/DatabaseDescriptor.java","lineNumber":1578,"sourceCode":"        else if (config.rpc_interface != null)\n        {\n            rpcAddress = getNetworkInterfaceAddress(config.rpc_interface, \"rpc_interface\", config.rpc_interface_prefer_ipv6);\n        }\n        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);","sourceCodeStart":1560,"sourceCodeEnd":1596,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L1560-L1596","documentation":"DatabaseDescriptor.applySimpleConfig / applyAddressConfig validates the cassandra.yaml broadcast_rpc_address setting by resolving it with InetAddress.getByName. If the hostname cannot be resolved via DNS, an UnknownHostException is wrapped in a ConfigurationException and startup aborts because the node cannot advertise an unreachable RPC address to clients.","triggerScenarios":"Calling DatabaseDescriptor.loadConfig()/applyAddressConfig() (e.g. during daemon startup) when config.broadcast_rpc_address is set to a hostname that DNS cannot resolve — typo, stale entry, or nameserver outage.","commonSituations":"cassandra.yaml edited by hand with a misspelled hostname; /etc/hosts entry removed; DNS not yet up at node boot in containers; using a public DNS name in an air-gapped cluster.","solutions":["Fix broadcast_rpc_address in cassandra.yaml to a resolvable hostname or, simplest, an explicit IP address","Add the hostname to /etc/hosts or fix DNS so it resolves before Cassandra starts","If the setting is unnecessary (no NAT/overlay), remove or comment out broadcast_rpc_address so the RPC address is derived from rpc_address","Verify with `getent hosts <name>` (or `nslookup`) before starting Cassandra"],"exampleFix":"// cassandra.yaml before\nbroadcast_rpc_address: rpc-node-01.internal.example\n// after (use resolvable name or literal IP)\nbroadcast_rpc_address: 10.0.1.5","handlingStrategy":"validation","validationCode":"String addr = config.broadcast_rpc_address;\nif (addr != null) {\n    try { java.net.InetAddress.getByName(addr); }\n    catch (java.net.UnknownHostException e) { throw new IllegalStateException(\"broadcast_rpc_address unresolvable: \" + addr); }\n}","typeGuard":null,"tryCatchPattern":"try { DatabaseDescriptor.daemonInitialization(); } catch (ConfigurationException e) { logger.error(\"Config error: {}\", e.getMessage()); System.exit(1); }","preventionTips":["Prefer literal IPs for broadcast_rpc_address in datacenter configs","Validate resolvability with getent/nslookup as a pre-start health check","Never let config templates inject unrendered hostnames"],"tags":["cassandra","configuration","dns"],"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-14T21:17:11.552Z"}