### CI Link

https://gradle-enterprise.elastic.co/s/pwrwtjb2rq6p6/tests/:server:internalClusterTest/org.elasticsearch.search.aggregations.metrics.MedianAbsoluteDeviationIT/testAsSubAggregation?expanded-stacktrace=WyIwIl0&top-execution=1

### Repro line

./gradlew ':server:internalClusterTest' --tests "org.elasticsearch.search.aggregations.metrics.MedianAbsoluteDeviationIT.testAsSubAggregation" -Dtests.seed=949133CBE00FFB18 -Dtests.locale=uk -Dtests.timezone=Asia/Jakarta -Druntime.java=20

### Does it reproduce?

Yes

### Applicable branches

main

### Failure history

https://gradle-enterprise.elastic.co/scans/tests?search.startTimeMax=1689086155974&search.startTimeMin=1688418000000&search.timeZoneId=Europe/Bucharest&tests.container=org.elasticsearch.search.aggregations.metrics.MedianAbsoluteDeviationIT&tests.test=testAsSubAggregation

### Failure excerpt

Only failed once in the past 7 days.
```
java.lang.AssertionError: |  
  | Expected: within <10.0> percent of <273574.0> |  
  | but: was <229045.6480914681>
```

server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationIT.java
.get();
        assertHitCount(response, NUMBER_OF_DOCS);
        final Terms terms = response.getAggregations().get("terms");
        assertThat(terms, notNullValue());
        List<? extends Terms.Bucket> buckets = terms.getBuckets();
        assertThat(buckets, notNullValue());
        assertThat(buckets, hasSize(numberOfBuckets));
        for (int i = 0; i < numberOfBuckets; i++) {
            Terms.Bucket bucket = buckets.get(i);
            assertThat(bucket, notNullValue());
            Filter filter = bucket.getAggregations().get("filter");
            assertThat(filter, notNullValue());
            assertThat(filter.getDocCount(), equalTo(0L));
            MedianAbsoluteDeviation mad = filter.getAggregations().get("mad");
            assertThat(mad, notNullValue());
            assertThat(mad.getMedianAbsoluteDeviation(), equalTo(Double.NaN));
        }
    }
    /**
     * Make sure that a request using a deterministic script or not using a script get cached.
     * Ensure requests using nondeterministic scripts do not get cached.
     */
    public void testScriptCaching() throws Exception {
        assertAcked(
            prepareCreate("cache_test_idx").setMapping("d", "type=long")
                .setSettings(Settings.builder().put("requests.cache.enable", true).put("number_of_shards", 1).put("number_of_replicas", 1))
                .get()
        );
        indexRandom(
            true,