Downsampling is broken. Not sure why yet (likely caused by #97557). Invoking the downsample api results into:

```
org.elasticsearch.ElasticsearchSecurityException: no indices permissions found
        at org.elasticsearch.xpack.core.security.support.Exceptions.authorizationError(Exceptions.java:32) ~[?:?]
        at org.elasticsearch.xpack.core.security.authz.accesscontrol.SecurityIndexReaderWrapper.getIndicesAccessControl(SecurityIn
dexReaderWrapper.java:110) ~[?:?]
        at org.elasticsearch.xpack.core.security.authz.accesscontrol.SecurityIndexReaderWrapper.apply(SecurityIndexReaderWrapper.j
ava:76) ~[?:?]
        at org.elasticsearch.xpack.core.security.authz.accesscontrol.SecurityIndexReaderWrapper.apply(SecurityIndexReaderWrapper.j
ava:46) ~[?:?]
        at org.elasticsearch.index.shard.IndexShard.wrapSearcher(IndexShard.java:1590) ~[elasticsearch-8.11.0-SNAPSHOT.jar:?]
        at org.elasticsearch.index.shard.IndexShard.wrapSearcher(IndexShard.java:1561) ~[elasticsearch-8.11.0-SNAPSHOT.jar:?]
        at org.elasticsearch.index.engine.Engine$SearcherSupplier.acquireSearcher(Engine.java:1321) ~[elasticsearch-8.11.0-SNAPSHO
T.jar:?]
        at org.elasticsearch.index.engine.Engine.acquireSearcher(Engine.java:774) ~[elasticsearch-8.11.0-SNAPSHOT.jar:?]
        at org.elasticsearch.index.shard.IndexShard.acquireSearcher(IndexShard.java:1549) ~[elasticsearch-8.11.0-SNAPSHOT.jar:?]
        at org.elasticsearch.xpack.downsample.DownsampleShardIndexer.<init>(DownsampleShardIndexer.java:115) ~[?:?]
        at org.elasticsearch.xpack.downsample.DownsampleShardPersistentTaskExecutor.startDownsampleShardIndexer(DownsampleShardPersistentTaskExecutor.java:111) ~[?:?]
        at org.elasticsearch.xpack.downsample.DownsampleShardPersistentTaskExecutor$1.doRun(DownsampleShardPersistentTaskExecutor.java:87) ~[?:?]
        at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:983) ~[elasticsearch-8.11.0-SNAPSHOT.jar:?]
        at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) ~[elasticsearch-8.11.0-SNAPSHOT.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.lang.Thread.run(Thread.java:1623) ~[?:?]
```
x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/DownsampleShardIndexer.java
}
    }
    public DownsampleIndexerAction.ShardDownsampleResponse execute() throws IOException {
        final Query initialStateQuery = createQuery();
        if (initialStateQuery instanceof MatchNoDocsQuery) {
            return new DownsampleIndexerAction.ShardDownsampleResponse(indexShard.shardId(), task.getNumIndexed());
        }
        long startTime = client.threadPool().relativeTimeInMillis();
        task.setTotalShardDocCount(searcher.getDirectoryReader().numDocs());
        task.setDownsampleShardIndexerStatus(DownsampleShardIndexerStatus.STARTED);
        task.updatePersistentTaskState(
            new DownsampleShardPersistentTaskState(DownsampleShardIndexerStatus.STARTED, null),
            ActionListener.noop()
        );
        logger.info("Downsampling task [" + task.getPersistentTaskId() + " on shard " + indexShard.shardId() + " started");
        BulkProcessor2 bulkProcessor = createBulkProcessor();
        try (searcher; bulkProcessor) {
            final TimeSeriesIndexSearcher timeSeriesSearcher = new TimeSeriesIndexSearcher(searcher, List.of(this::checkCancelled));
            TimeSeriesBucketCollector bucketCollector = new TimeSeriesBucketCollector(bulkProcessor);
            bucketCollector.preCollection();
            timeSeriesSearcher.search(initialStateQuery, bucketCollector);
            bucketCollector.postCollection();
        }
        logger.info(
            "Shard [{}] successfully sent [{}], received source doc [{}], indexed downsampled doc [{}], failed [{}], took [{}]",
            indexShard.shardId(),
            task.getNumReceived(),
            task.getNumSent(),
            task.getNumIndexed(),
            task.getNumFailed(),