It does not reproduce locally. I found this error in the logs which looks like a possible cause.
```
[2022-07-30T01:22:31,499][ERROR][o.e.r.s.FileSettingsService] [[elasticsearch[file-settings-watcher]]] Error processing operator settings json file
  1> java.lang.IllegalStateException: Error processing state change request for file_settings, errors: org.elasticsearch.xcontent.XContentParseException: [1:0] [reserved_state_chunk] Expected START_OBJECT but was: null
  1> 	at org.elasticsearch.xcontent.ObjectParser.throwExpectedStartObject(ObjectParser.java:330)
  1> 	at org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:275)
  1> 	at org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)
  1> 	at org.elasticsearch.xcontent.ConstructingObjectParser.apply(ConstructingObjectParser.java:158)
  1> 	at org.elasticsearch.reservedstate.service.ReservedClusterStateService.process(ReservedClusterStateService.java:103)
  1> 	at org.elasticsearch.reservedstate.service.FileSettingsService.processFileSettings(FileSettingsService.java:308)
  1> 	at org.elasticsearch.reservedstate.service.FileSettingsService.lambda$startWatcher$3(FileSettingsService.java:245)
  1> 	at java.base/java.lang.Thread.run(Thread.java:833)

  1> 	at org.elasticsearch.reservedstate.service.ReservedClusterStateService.process(ReservedClusterStateService.java:109) ~[main/:?]
  1> 	at org.elasticsearch.reservedstate.service.FileSettingsService.processFileSettings(FileSettingsService.java:308) ~[main/:?]
  1> 	at org.elasticsearch.reservedstate.service.FileSettingsService.lambda$startWatcher$3(FileSettingsService.java:245) ~[main/:?]
  1> 	at java.lang.Thread.run(Thread.java:833) ~[?:?]
  1> Caused by: org.elasticsearch.xcontent.XContentParseException: [1:0] [reserved_state_chunk] Expected START_OBJECT but was: null
  1> 	at org.elasticsearch.xcontent.ObjectParser.throwExpectedStartObject(ObjectParser.java:330) ~[elasticsearch-x-content-8.5.0-SNAPSHOT.jar:8.5.0-SNAPSHOT]
  1> 	at org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:275) ~[elasticsearch-x-content-8.5.0-SNAPSHOT.jar:8.5.0-SNAPSHOT]
  1> 	at org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166) ~[elasticsearch-x-content-8.5.0-SNAPSHOT.jar:8.5.0-SNAPSHOT]
  1> 	at org.elasticsearch.xcontent.ConstructingObjectParser.apply(ConstructingObjectParser.java:158) ~[elasticsearch-x-content-8.5.0-SNAPSHOT.jar:8.5.0-SNAPSHOT]
  1> 	at org.elasticsearch.reservedstate.service.ReservedClusterStateService.process(ReservedClusterStateService.java:103) ~[main/:?]
  1> 	... 3 more
  1> [2022-07-30T01:22:31,502][INFO ][o.e.r.s.FileSettingsService] [[elasticsearch[file-settings-watcher]]] processing path [/mnt/secret/elastic+elasticsearch+main+periodic+ear/server/build/testrun/internalClusterTest/temp/org.elasticsearch.reservedstate.service.FileSettingsServiceIT_129CA1A8D872CBA3-001/tempDir-003/config/operator/settings.json] for [file_settings]
```


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

**Reproduction line:**
`./gradlew ':server:internalClusterTest' --tests "org.elasticsearch.reservedstate.service.FileSettingsServiceIT.testSettingsApplied" -Dtests.seed=129CA1A8D872CBA3 -Dtests.locale=sr-BA -Dtests.timezone=Asia/Kamchatka -Druntime.java=17`

**Applicable branches:**
main

**Reproduces locally?:**
No

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

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

  at __randomizedtesting.SeedInfo.seed([129CA1A8D872CBA3]:0)

```
server/src/internalClusterTest/java/org/elasticsearch/reservedstate/service/FileSettingsServiceIT.java
}
    private void assertClusterStateNotSaved(CountDownLatch savedClusterState) throws Exception {
        boolean awaitSuccessful = savedClusterState.await(20, TimeUnit.SECONDS);
        assertTrue(awaitSuccessful);
        final ClusterStateResponse clusterStateResponse = client().admin().cluster().state(new ClusterStateRequest()).actionGet();
        assertThat(clusterStateResponse.getState().metadata().persistentSettings().get("search.allow_expensive_queries"), nullValue());
        ClusterUpdateSettingsRequest req = new ClusterUpdateSettingsRequest().persistentSettings(
            Settings.builder().put("search.allow_expensive_queries", "false")
        );
        
        client().admin().cluster().updateSettings(req).get();
    }
    public void testErrorSaved() throws Exception {
        internalCluster().setBootstrapMasterNodeIndex(0);
        logger.info("--> start data node / non master node");
        String dataNode = internalCluster().startNode(Settings.builder().put(dataOnlyNode()).put("discovery.initial_state_timeout", "1s"));
        FileSettingsService dataFileSettingsService = internalCluster().getInstance(FileSettingsService.class, dataNode);
        assertFalse(dataFileSettingsService.watching());
        logger.info("--> start master node");
        final String masterNode = internalCluster().startMasterOnlyNode();
        assertMasterNode(internalCluster().nonMasterClient(), masterNode);
        var savedClusterState = setupClusterStateListenerForError(masterNode);
        FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);
        assertTrue(masterFileSettingsService.watching());
        assertFalse(dataFileSettingsService.watching());
        writeJSONFile(masterNode, testErrorJSON);
        assertClusterStateNotSaved(savedClusterState);
    }
}