During the initial sync there can be multiple indices build in parallel in the same time. If for some reason all builders fail at the same time (e.g. a shutdown is initiated) then the fail() method tries to clean up the IndexCatalog.
However, the IndexCatalog access is not multi thread safe so all kind of things can go bad with concurrent multiple executions of the fail() method.