SendFileStep failed – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7.3-8.9

Briefly, this error occurs when Elasticsearch attempts to transfer a file between nodes during shard relocation or recovery, but fails. This could be due to network issues, disk space problems, or file system errors. To resolve this, you can check the network connectivity between nodes, ensure there’s enough disk space, and verify the file system integrity. Additionally, check Elasticsearch logs for more detailed error information. If the issue persists, consider restarting the Elasticsearch node or even the entire cluster.

This guide will help you check for common problems that cause the log ” sendFileStep failed ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: recovery, indices.

Log Context

Log “sendFileStep failed” class name is RecoverySourceHandler.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 assert Transports.assertNotTransportThread(RecoverySourceHandler.this + "[phase1]");
 phase1(safeCommitRef.getIndexCommit(); startingSeqNo; () -> estimateNumOps; sendFileStep);
 }; onFailure));  } catch (final Exception e) {
 throw new RecoveryEngineException(shard.shardId(); 1; "sendFileStep failed"; e);
 }
 }
 assert startingSeqNo >= 0 : "startingSeqNo must be non negative. got: " + startingSeqNo;  sendFileStep.addListener(ActionListener.wrap(r -> {

 

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?