**Build scan:**
https://gradle-enterprise.elastic.co/s/5q2ukbpqbhz7i/tests/:x-pack:plugin:snapshot-repo-test-kit:internalClusterTest/org.elasticsearch.repositories.blobstore.testkit.RepositoryAnalysisSuccessIT/testRepositoryAnalysis

**Reproduction line:**
```
./gradlew ':x-pack:plugin:snapshot-repo-test-kit:internalClusterTest' --tests "org.elasticsearch.repositories.blobstore.testkit.RepositoryAnalysisSuccessIT.testRepositoryAnalysis" -Dtests.seed=BE53761FA83A5950 -Dtests.locale=ca -Dtests.timezone=America/Port-au-Prince -Druntime.java=20
```

**Applicable branches:**
main

**Reproduces locally?:**
Didn't try

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.repositories.blobstore.testkit.RepositoryAnalysisSuccessIT&tests.test=testRepositoryAnalysis

**Failure excerpt:**
```
org.elasticsearch.repositories.RepositoryVerificationException: [test-repo] analysis failed, you may need to manually remove [temp-analysis-0Fi4UgK2T72QJxKdRInE2Q]

  at __randomizedtesting.SeedInfo.seed([BE53761FA83A5950:476ED77176A16AB9]:0)

  Caused by: org.elasticsearch.repositories.RepositoryVerificationException: [test-repo] register [test-register-EZnfK-0gTm-NSGWxRGkMzw] should have value [3] but instead had value [OptionalLong.empty]


```
x-pack/plugin/snapshot-repo-test-kit/src/internalClusterTest/java/org/elasticsearch/repositories/blobstore/testkit/RepositoryAnalysisSuccessIT.java
public Map<String, BlobMetadata> listBlobsByPrefix(String blobNamePrefix) {
            final Map<String, BlobMetadata> blobMetadataByName = listBlobs();
            blobMetadataByName.keySet().removeIf(s -> s.startsWith(blobNamePrefix) == false);
            return blobMetadataByName;
        }
        @Override
        public void getRegister(String key, ActionListener<OptionalLong> listener) {
            if (firstRegisterRead.compareAndSet(true, false) && randomBoolean() && randomBoolean()) {
                
                listener.onResponse(OptionalLong.empty());
            } else if (randomBoolean()) {
                listener.onResponse(OptionalLong.of(registers.computeIfAbsent(key, ignored -> new AtomicLong()).get()));
            } else {
                compareAndExchangeRegister(key, -1, -1, listener);
            }
        }
        @Override
        public void compareAndExchangeRegister(String key, long expected, long updated, ActionListener<OptionalLong> listener) {
            if (updated != -1 && randomBoolean() && randomBoolean()) {
                
                listener.onResponse(OptionalLong.empty());
            } else {
                listener.onResponse(
                    OptionalLong.of(registers.computeIfAbsent(key, ignored -> new AtomicLong()).compareAndExchange(expected, updated))
                );
            }
        }
    }
}