Some more earlier failures with the same issue (all in Windows builds):
https://gradle-enterprise.elastic.co/s/ic3vf76vlpiho
https://gradle-enterprise.elastic.co/s/7nsuvadgg5bbm
https://gradle-enterprise.elastic.co/s/7kcrezoswrgdg

**Build scan:**
https://gradle-enterprise.elastic.co/s/whgmtqrtovpgu/tests/:server:internalClusterTest/org.elasticsearch.reservedstate.service.FileSettingsServiceIT/testErrorSaved

**Reproduction line:**
`gradlew ':server:internalClusterTest' --tests "org.elasticsearch.reservedstate.service.FileSettingsServiceIT.testErrorSaved" -Dtests.seed=762F971779043BEB -Dtests.locale=es-BO -Dtests.timezone=Africa/Luanda -Druntime.java=18`

**Applicable branches:**
main

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

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.reservedstate.service.FileSettingsServiceIT&tests.test=testErrorSaved

**Failure excerpt:**
```
org.elasticsearch.cluster.metadata.ProcessClusterEventTimeoutException: failed to process cluster event (delete_repository [*]) within 30s

  at __randomizedtesting.SeedInfo.seed([762F971779043BEB:C5DE1806AEE40E21]:0)
  at org.elasticsearch.cluster.service.MasterService$Batcher.lambda$onTimeout$1(MasterService.java:165)
  at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:825)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
  at java.lang.Thread.run(Thread.java:833)

```
server/src/main/java/org/elasticsearch/reservedstate/service/FileSettingsService.java
configDirWatchKey = enableSettingsWatcher(configDirWatchKey, operatorSettingsDir().getParent());
        } catch (Exception e) {
            if (watchService != null) {
                try {
                    cleanupWatchKeys();
                    this.watchService.close();
                } catch (Exception ignore) {} finally {
                    this.watchService = null;
                }
            }
            throw new IllegalStateException("unable to launch a new watch service", e);
        }
        this.watcherThreadLatch = new CountDownLatch(1);
        new Thread(() -> {
            try {
                logger.info("file settings service up and running [tid={}]", Thread.currentThread().getId());
                WatchKey key;
                while ((key = watchService.take()) != null) {
                    /**
                     * Reading and interpreting watch service events can vary from platform to platform. E.g:
                     * MacOS symlink delete and set (rm -rf operator && ln -s <path to>/file_settings/ operator):
                     *     ENTRY_MODIFY:operator
                     *     ENTRY_CREATE:settings.json
                     *     ENTRY_MODIFY:settings.json
                     * Linux in Docker symlink delete and set (rm -rf operator && ln -s <path to>/file_settings/ operator):
                     *     ENTRY_CREATE:operator
                     * Windows
                     *     ENTRY_CREATE:operator