Confluence Data Center won't start due to no matching network interface found
Platform Notice: Data Center Only - This article only applies to Atlassian apps on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
In a Data Center environment, Confluence or the Confluence-managed Synchrony service may fail to start after upgrading to Confluence version 9.2.3 or higher, or following any changes that impact network interfaces, such as a server migration.
Diagnostics
Error log details
The following error appears in atlassian-confluence.log or atlassian-synchrony.log:
java.lang.RuntimeException: Hazelcast CANNOT start on this node. No matching network interface found.
Interface matching must be either disabled or updated in the hazelcast.xml config file.
at com.hazelcast.instance.DefaultAddressPicker.pickAddress(DefaultAddressPicker.java:180)
atlassian-confluence.log
ERROR: Confluence is not able to find network interface named <interface_name>. Please fix the network interface name in the confluence.cfg.xml file and restart Confluenceatlassian-confluence.log
ERROR Enabling Hazelcast interfaces config. Please ensure that custom Hazelcast network settings are up to dateCause
An incorrect value is specified for the network interface property within <confluence-home-folder>/confluence.cfg.xml:
<property name="confluence.cluster.interface">wlan0</property>A new method makeConfluenceFailIfCantDiscoverClusterInterface was introduced in 9.2.3 as a part of the fix for CONFSERVER-99116. This new change forces the admins to find the correct interface and update it in the confluence.cfg.xml file.
Solution
IMPORTANT NOTICE
Earlier versions of this document included incorrect resolution steps that doesn't completely fix the problem for both Synchrony and Confluence. Here were the previous steps:
Previous steps
DO NOT USE
Locate the synchrony-args.properties file in the <confluence-home-directory>
Using admin privileges, edit the synchrony-args.properties file by adding the following parameters:
Insert the following lines, replacing <IP> with the appropriate IP address of the server:
cluster.interfaces=<IP> synchrony.cluster.bind=<IP>Save the file
Restart Confluence
If you applied this previous resolution (see CONFSERVER-99116), we highly recommend to reverse those changes.
For the updated solution to follow, please continue below.
If you are using Docker, see the following article for that issue: Interface IP is incorrect and not found while starting Hazelcast in a dockerized environment for Confluence Data Center
If the issue affects the startup of the DC cluster, then follow the below steps.
DC Cluster node
Download list-interfaces.jar from CONFSERVER-10979 - List confluence cluster interface onto your Confluence node.
Run the following using JRE/JDK 21 or higher, otherwise the list will contain incorrect interface names:
java -jar list-interfaces.jarIdentify the interface name for that node that matches to the Confluence node IP address. In this example it is en0 that matches 192.168.0.1 (my sample Confluence Node IP):
% java -jar list-interfaces.jar interfaces.size() = 2 networkInterface[0] = name:en0 (en0) ([/fe80:0:0:0:105a:1ff1:8033:4968%en0/64 [null], /192.168.0.1/24 [/192.0.0.255]]) networkInterface[1] = name:lo0 (lo0) ([/fe80:0:0:0:0:0:0:1%lo0/64 [null], /0:0:0:0:0:0:0:1/128 [null], /169.254.169.254/8 [null], /127.0.0.1/8 [null]])Below PowerShell script is an option for Windows users who prefer not to run the Java command.
⚠️ Please be aware that the PowerShell script may not list virtual network interfaces.
Get-NetAdapter | SELECT interfacename,interfacealias,ifindex | Foreach-Object{ $ifn = $_ $ipn = Get-NetIPaddress -InterfaceIndex $ifn.ifindex New-Object -TypeName PSObject -Property @{ InterfaceName = $ifn.InterfaceName InterfaceAlias = $ifn.InterfaceAlias IPAddress = $ipn.IPAddress } }Shutdown Confluence node.
Modify the following interface line in
<confluence-home-folder>/confluence.cfg.xmlto match what was returned by the list-interfaces.jar command:<property name="confluence.cluster.interface">en0</property>If you previously encountered the Synchrony startup bug on Windows (see CONFSERVER-99116) and applied the workaround, such as:
Locate the synchrony-args.properties file in the <confluence-home-directory>
Using admin privileges, edit the synchrony-args.properties file by adding the following parameters:
Insert the following lines, replacing <IP> with the appropriate IP address of the server:
cluster.interfaces=<IP> synchrony.cluster.bind=<IP>Save the file
Restart Confluence
Please ensure that you revert those changes in the
synchrony-args.propertiesfile before proceeding Confluence upgrade. Failure to do so may cause the upgrade to fail.Start the Confluence node.
Once the node has fully started, repeat the above steps on the remaining Confluence DC nodes.
Notice some nodes may have a different interface name. Inspect the output of the command on all of them and set the name accordingly.
Was this helpful?