Get RigidBody's (*not* kinematic) velocity after collision?

Hello, this is a pretty simple question - how do I get a non-kinematic RigidBody’s new velocity after a collision has occurred? RigidBody.velocity does not seem to reliably return the value I am looking for when queried from OnCollisionEnter().

For example, if an object is falling and collides with a ground plane, the Y component of its velocity will sometimes be negative and sometimes is positive (the value I am looking for would always be non-negative).

It’s possible there is some custom code conflicting with this, so I am just trying to figure out what the intended Unity behavior is. The Unity docs aren’t especially clear as to when the OnCollisionEnter() event is invoked - does it happen before or after the impulse force has been applied to the RigidBody, or is this undefined?

Thanks!

Another note to add, these RigidBodies are using convex mesh colliders. I am also seeing weird things on them like the collision events firing twice per collision.

Update - this appears to be a substantial bug with convex MeshColliders.