can you explain why we do this now only if `autoCreateIndex.needToCheck()`