doing a careful review now I notice this self._epoch_tmp which I don't like much.
Wouldn't be simpler to have _get_epoch_from_disk be able to return both versions of epochs (with and w/o SSP)?

something like

epoch_ssp, epoch_raw, = self._get_epoch_from_disk(idx, with_no_proj=True)

and then you do

is_good, offenders = self._is_good_epoch(epoch_ssp)

and decide which one to keep?