Documenting the dark corners of the Unity Engine.
CapsuleCast may sometimes return invalid an 'invalid hit', where
hit.distance == 0 and
hit.point == (0,0,0) 1). By the documentation, this should only happen when the starting cast position already overlaps a target geometry.
Occasionally, however, CapsuleCast may return an invalid hit in certain uncommon but valid cases. For example, hitting a triangle mesh exactly edge on2). Adding a small fudge value to the cast direction can alleviate this.
ray.direction == colliderTriangle.normal