private CompletableFuture<Void> loadStreamSetObjectInfo(GetObjectsContext ctx,
        List<S3StreamSetObject> streamSetObjects,
        int startSearchIndex) {
        return exec(() -> {
            final int streamSetObjectsSize = streamSetObjects.size();
            List<CompletableFuture<Void>> loadIndexCfList = new LinkedList<>();
            for (int i = startSearchIndex; i < streamSetObjectsSize; i++) {
                S3StreamSetObject streamSetObject = streamSetObjects.get(i);
                if (streamSetObject.ranges().length != 0) {
                    continue;
                }
                if (ctx.object2range.containsKey(streamSetObject.objectId())) {
                    continue;
                }
                loadIndexCfList.add(
                    ctx.rangeGetter
                        .find(streamSetObject.objectId(), ctx.streamId)
                        .thenAccept(range -> ctx.object2range.put(streamSetObject.objectId(), range))
                );
            }
            if (loadIndexCfList.isEmpty()) {
                return CompletableFuture.completedFuture(null);
            }
            return CompletableFuture.allOf(loadIndexCfList.toArray(new CompletableFuture[0]));
        }, LOGGER, "loadStreamSetObjectInfo");
    }
Load the stream set object range info is missing

@return async load
metadata/src/main/java/org/apache/kafka/image/S3StreamsMetadataImage.java