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
Map<String, String> failures = failedItems.stream()
                        .collect(
                            Collectors.toMap(
                                BulkItemResponse::getId,
                                BulkItemResponse::getFailureMessage,
                                (msg1, msg2) -> Objects.equals(msg1, msg2) ? msg1 : msg1 + "," + msg2
                            )
                        );
                    logger.error("Shard [{}] failed to populate downsample index. Failures: [{}]", indexShard.shardId(), failures);
                    abort = true;
                }
            }
            @Override
            public void afterBulk(long executionId, BulkRequest request, Exception failure) {
                if (failure != null) {
                    long items = request.numberOfActions();
                    task.addNumFailed(items);
                    logger.error(() -> format("Shard [%s] failed to populate downsample index.", indexShard.shardId()), failure);
                    abort = true;
                }
            }
        };
        return BulkProcessor2.builder(client::bulk, listener, client.threadPool())
            .setBulkActions(DOWNSAMPLE_BULK_ACTIONS)
            .setBulkSize(DOWNSAMPLE_BULK_SIZE)
            .setMaxBytesInFlight(downsampleMaxBytesInFlight)
            .setMaxNumberOfRetries(3)
            .build();
    }
    private class TimeSeriesBucketCollector extends BucketCollector {