Invalidation of User Limits

Hi, I have a question about User Limits:

I imitated the official example B2a of Geant4 to limit the maximum step length of a ball with a radius of 10cm in an example to no more than 0.1cm, and output the step length in the ball by GetStepLength() method. I did find that many steps were limited to 0.1cm in length, but there were a few steps that were larger than 0.1cm in length. I continued to output the boundary values of those steps that were larger than 0.1cm in length. It is found that some endpoints are on the boundary (i.e. (i.e. the coordinates of the endpoints are x^2+y^2+z^2=100cm), but some endpoints are still inside the sphere (i.e. the unrestricted steps should not or should not be due to cut of the boundary).

I continued to output the physical processes that took place in these steps and found that the unrestricted steps had both photoelectric effects and Compton scattering, so I didn’t think this was due to any particular physical processes.

I have found similar questions in other instances, so why does this happen? Welcome and thank you for answering them.

Code modeled after B2a: