|  | @@ -30,6 +30,7 @@ import org.elasticsearch.transport.TransportService;
 | 
	
		
			
				|  |  |  import java.util.ArrayList;
 | 
	
		
			
				|  |  |  import java.util.HashMap;
 | 
	
		
			
				|  |  |  import java.util.HashSet;
 | 
	
		
			
				|  |  | +import java.util.Iterator;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Map;
 | 
	
		
			
				|  |  |  import java.util.Set;
 | 
	
	
		
			
				|  | @@ -99,7 +100,9 @@ public class NodeConnectionsService extends AbstractLifecycleComponent {
 | 
	
		
			
				|  |  |          final List<Runnable> runnables = new ArrayList<>(discoveryNodes.getSize());
 | 
	
		
			
				|  |  |          try (var refs = new RefCountingRunnable(onCompletion)) {
 | 
	
		
			
				|  |  |              synchronized (mutex) {
 | 
	
		
			
				|  |  | -                for (final DiscoveryNode discoveryNode : discoveryNodes) {
 | 
	
		
			
				|  |  | +                // Ugly hack: when https://github.com/elastic/elasticsearch/issues/94946 is fixed, just iterate over discoveryNodes here
 | 
	
		
			
				|  |  | +                for (final Iterator<DiscoveryNode> iterator = discoveryNodes.mastersFirstStream().iterator(); iterator.hasNext();) {
 | 
	
		
			
				|  |  | +                    final DiscoveryNode discoveryNode = iterator.next();
 | 
	
		
			
				|  |  |                      ConnectionTarget connectionTarget = targetsByNode.get(discoveryNode);
 | 
	
		
			
				|  |  |                      final boolean isNewNode = connectionTarget == null;
 | 
	
		
			
				|  |  |                      if (isNewNode) {
 |