**Build scan:**
https://gradle-enterprise.elastic.co/s/dxnvahurwubcu/tests/:server:internalClusterTest/org.elasticsearch.action.admin.indices.create.CreateIndexIT/testCreateAndDeleteIndexConcurrently

**Reproduction line:**
```
./gradlew ':server:internalClusterTest' --tests "org.elasticsearch.action.admin.indices.create.CreateIndexIT.testCreateAndDeleteIndexConcurrently" -Dtests.seed=3ED3285ADA7A0152 -Dtests.locale=is -Dtests.timezone=Africa/Tunis -Druntime.java=20
```

**Applicable branches:**
main, 8.8

**Reproduces locally?:**
No

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.action.admin.indices.create.CreateIndexIT&tests.test=testCreateAndDeleteIndexConcurrently

**Failure excerpt:**
```
java.lang.Exception: Test abandoned because suite timeout was reached.

  at __randomizedtesting.SeedInfo.seed([3ED3285ADA7A0152]:0)

```
server/src/main/java/org/elasticsearch/indices/recovery/RecoverySourceHandler.java
final var targetNodeId = request.targetNode().getId();
            logger.trace("cloning primary's retention lease for target node ID [{}]", targetNodeId);
            final var backgroundSyncListener = wrapLeaseSyncListener(syncListener);
            try {
                final var clonedLease = shard.cloneLocalPeerRecoveryRetentionLease(targetNodeId, backgroundSyncListener);
                logger.trace("cloned primary's retention lease as [{}]", clonedLease);
                return clonedLease;
            } catch (RetentionLeaseNotFoundException e) {
                
                
                
                assert shard.indexSettings().getIndexVersionCreated().before(IndexVersion.V_7_4_0)
                    || shard.indexSettings().isSoftDeleteEnabled() == false;
                final long estimatedGlobalCheckpoint = startingSeqNo - 1;
                final var newLease = shard.addPeerRecoveryRetentionLease(targetNodeId, estimatedGlobalCheckpoint, backgroundSyncListener);
                logger.trace("created retention lease with estimated checkpoint of [{}]", estimatedGlobalCheckpoint);
                return newLease;
            }
        }, listener);
    }
    private void deleteRetentionLease(ActionListener<Void> listener) {
        updateRetentionLease(syncListener -> {
            try {
                shard.removePeerRecoveryRetentionLease(request.targetNode().getId(), wrapLeaseSyncListener(syncListener));
            } catch (RetentionLeaseNotFoundException e) {
                
                logger.debug("no peer-recovery retention lease for [{}]", request.targetAllocationId());
                syncListener.onResponse(null);
            }
            return null;