private void retryRecovery(
     final RecoveryTarget recoveryTarget,
     TimeValue retryAfter,
     final StartRecoveryRequest currentRequest) {
   try {
     onGoingRecoveries.resetRecovery(recoveryTarget.recoveryId(), recoveryTarget.shardId());
   } catch (Exception e) {
     onGoingRecoveries.failRecovery(
         recoveryTarget.recoveryId(), new RecoveryFailedException(currentRequest, e), true);
   }
   threadPool.schedule(
       retryAfter, ThreadPool.Names.GENERIC, new RecoveryRunner(recoveryTarget.recoveryId()));
 }