Does OnCollisionStay only fire on the second contact frame?

I created a ball with a bouncy physics material and was surprised that, when bouncing, in the frame that the ball touches the ground and bounces back up, only OnCollisionEnter is called and OnCollisionStay is not.

When debugging I noticed that the first OnCollisionStay is called in the next physics frame after OnCollisionEnter.
Is that by design?

Because the docs of OnCollisionStay say that it is called in every frame where the body touches something, I assumed it would be called at least once for every OnCollisionEnter.

That’s by design. The OnColisionStay method has a specific use case: when two objects collide for more that one physics-update to determent whether the intersection was just a short bumb or lastet longer. If you want the OnCollisionStay method to be calles every frame of collision you can just call it manually in the OnCollisionEnter method.

Have fun

Unity physics can gives unexpected results.
If you need to use OnCollisionStay, I would rather recommend to switch a boolean with OnCollisionEnter and OnCollisionExit, then to use this bool in a Update()