Confusion on DifferentialEquations.jl. How many saved timesteps

It’s definitely from the callbacks because application of discontinuities means there’s no unique value at a given time, and so the results at a time are ordered by the callback applications. Did you not intend to save those changes? If so, then you want to do save_positions = (false,false) as described in the callback documentation.