During batch application, starting a background index build on a secondary does not set the minimumVisibleSnapshot on the collection until the index build finishes. If a secondary reader without the PBWM lock reads at a timestamp A before an index build timestamped for B, a reader may iterate through the indexes for a collection and reach this invariant.
The problem is that _setupInMemoryStructures is called before the actual catalog entry is updated on disk, so a reader may see an in-memory state inconsistent with the state on disk. This can be prevented by updating the minimumVisibleSnapshot on the collection to force readers to wait for a later timestamp.