diff --git a/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java b/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java index ab827f00f1abf..904e53d9af418 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java +++ b/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java @@ -2040,7 +2040,11 @@ public String getMasterName(@Nullable String viaNode) { try { ClusterServiceUtils.awaitClusterState(logger, state -> state.nodes().getMasterNode() != null, clusterService(viaNode)); final ClusterState state = client(viaNode).admin().cluster().prepareState(TEST_REQUEST_TIMEOUT).setLocal(true).get().getState(); - return state.nodes().getMasterNode().getName(); + final DiscoveryNode masterNode = state.nodes().getMasterNode(); + if (masterNode == null) { + throw new AssertionError("Master is not stable but the method expects a stable master node"); + } + return masterNode.getName(); } catch (Exception e) { logger.warn("Can't fetch cluster state", e); throw new RuntimeException("Can't get master node " + e.getMessage(), e);