|  | @@ -81,21 +81,20 @@ public class TransportShardRefreshAction extends TransportReplicationAction<
 | 
	
		
			
				|  |  |          IndexShard primary,
 | 
	
		
			
				|  |  |          ActionListener<PrimaryResult<ShardRefreshReplicaRequest, ReplicationResponse>> listener
 | 
	
		
			
				|  |  |      ) {
 | 
	
		
			
				|  |  | -        ActionListener.completeWith(listener, () -> {
 | 
	
		
			
				|  |  | -            ShardRefreshReplicaRequest replicaRequest = new ShardRefreshReplicaRequest(shardRequest.shardId(), primary.refresh(SOURCE_API));
 | 
	
		
			
				|  |  | +        primary.externalRefresh(SOURCE_API, listener.delegateFailure((l, refreshResult) -> {
 | 
	
		
			
				|  |  | +            ShardRefreshReplicaRequest replicaRequest = new ShardRefreshReplicaRequest(shardRequest.shardId(), refreshResult);
 | 
	
		
			
				|  |  |              replicaRequest.setParentTask(shardRequest.getParentTask());
 | 
	
		
			
				|  |  |              logger.trace("{} refresh request executed on primary", primary.shardId());
 | 
	
		
			
				|  |  | -            return new PrimaryResult<>(replicaRequest, new ReplicationResponse());
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | +            l.onResponse(new PrimaryResult<>(replicaRequest, new ReplicationResponse()));
 | 
	
		
			
				|  |  | +        }));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      protected void shardOperationOnReplica(ShardRefreshReplicaRequest request, IndexShard replica, ActionListener<ReplicaResult> listener) {
 | 
	
		
			
				|  |  | -        ActionListener.completeWith(listener, () -> {
 | 
	
		
			
				|  |  | -            replica.refresh(SOURCE_API);
 | 
	
		
			
				|  |  | +        replica.externalRefresh(SOURCE_API, listener.delegateFailure((l, refreshResult) -> {
 | 
	
		
			
				|  |  |              logger.trace("{} refresh request executed on replica", replica.shardId());
 | 
	
		
			
				|  |  | -            return new ReplicaResult();
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | +            l.onResponse(new ReplicaResult());
 | 
	
		
			
				|  |  | +        }));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 |