Received cluster state from sourceNode but currently following – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7-7.15

Before you dig into reading this guide, have you tried asking OpsGPT what this log means? You’ll receive a customized analysis of your log.

Try OpsGPT now for step-by-step guidance and tailored insights into your Elasticsearch operation.

Briefly, this error occurs when a node in Elasticsearch receives a cluster state from a source node, but it’s currently following another leader node. This could be due to network issues, configuration errors, or a split-brain scenario. To resolve this, you can try restarting the nodes, checking the network connectivity, or adjusting the discovery.zen.minimum_master_nodes setting to prevent split-brain. Also, ensure that the cluster settings are correctly configured and consistent across all nodes.

For a complete solution to your to your search operation, try for free AutoOps for Elasticsearch & OpenSearch . With AutoOps and Opster’s proactive support, you don’t have to worry about your search operation – we take charge of it. Get improved performance & stability with less hardware.

This guide will help you check for common problems that cause the log ” received cluster state from ” + sourceNode + ” but currently following ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: cluster, node, source.

Log Context

Log “received cluster state from ” + sourceNode + ” but currently following ” class name is Coordinator.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 if (publishRequest.getAcceptedState().term() == ZEN1_BWC_TERM && getCurrentTerm() == ZEN1_BWC_TERM
 && mode == Mode.FOLLOWER && Optional.of(sourceNode).equals(lastKnownLeader) == false) {  logger.debug("received cluster state from {} but currently following {}; rejecting"; sourceNode; lastKnownLeader);
 throw new CoordinationStateRejectedException("received cluster state from " + sourceNode + " but currently following "
 + lastKnownLeader + "; rejecting");
 }  final ClusterState localState = coordinationState.get().getLastAcceptedState();

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?