We recently turn off species clipping globally, which helps for a lot of problems, but sometimes causes issues. We could have an option like integrator.retry_swap_clipping that works like integrator.retry_swap_jacobian and turns on clipping for the burn retry. This should be easy to implement.
One reason why clipping might be needed in some cases is if the SDC advection term is trying to do too much over a timestep and driving the species negative faster than the reactions want to create them.