CharacterMovementComponent: Possible bug with forces and replication

Recreational steps:

  1. Create new project (C++ or blueprint does not matter), in this case Third Person Shooter Project in C++.
  2. In the template’s generated character (C++ or blueprint), check for authority and add a large force to the character movement component every tick (say 0|0|100000).
  3. Start PIE with 2 or more players.
  4. See yourself (as the server) float up slowly.
  5. Watch the client(s) shoot up into space at a significantly faster speed, even though the same force is applied to both.

I do not believe this is intended. I do not know how to fix or work around this.

Is force (supposed to be) properly replicated? Or should we not use force in multiplayer games? What do we do then, instead?

EDIT When applying the force locally ( IsLocallyControlled() instead of HasAuthority()), only the server moves up while the clients locally attempt to move up, but the server corrects this “mistake” and sends them back down on the ground, causing them to float in place locally on client-side, or just walk around normally on server-side.