@Override
  public void requestRebuild(@NotNull final ID<?, ?> indexId, final @NotNull Throwable throwable) {
    IndexStatisticGroup.reportIndexRebuild(indexId, throwable, false);
    LOG.info("Requesting index rebuild for: " + indexId.getName(), throwable);
    if (FileBasedIndexScanUtil.isManuallyManaged(indexId)) {
      advanceIndexVersion(indexId);
    }
    else if (!myRegisteredIndexes.isExtensionsDataLoaded()) {
      IndexDataInitializer.submitGenesisTask(coroutineScope, () -> {
        // should be always true here since the genesis pool is sequential
        waitUntilIndicesAreInitialized();
        doRequestRebuild(indexId, throwable);
        return null;
      });
    }
    else {
      doRequestRebuild(indexId, throwable);
    }
  }
@Override
  public void requestRebuild(@NotNull final ID<?, ?> indexId, final @NotNull Throwable throwable)