The documentation says:
The <i>contactNormal</i> vector contains the information if the 2 objects collided on the horizontal axis (if contactNormal.x
is 1 or -1) or on the vertical axis (if contactNormal.y
is 1 or -1). The non-affected axis will be 0.
but the real value is not the contactNormal, seem It’s the contactPoint