Download

Inconsistent floor normals on corners in multiplayer

I have a moving platform (a cube with 0.1 scale in Z) that rotates.
I walk to the edge of it such that the pawn capsule center is off the edge, but the capsule radius can still touch the edge (literally an edge case).
The server says the floor normal (after doing the floor sweep) is straight up.
The client says the floor normal is straight to the side and begins to fall since there is no valid floor.
I then start jittering because of correction, the client continues to compute the floor as ‘side’, and I jitter forever.

d98a3053e8d00bbf619572a92b1323ea79bf1153.png

So my question is, why is the floor sweep giving me inconsistent normals between client and server?
What are all the factors that determine whether the normal on a corner will get reported as Up or Side (or wherever the faces are facing)?
I just want server and client to agree, preferably on Up.

I’ve made some observations:
When I do the sweep in blueprints, client and server agree, but they both say impactNormal is up when platform is moving up, and they both say to the side when platform is moving down, so component’s physics velocity appears to be a factor for how it chooses which face to get the normal from.