How do I synchronize physics between Client and Server

This is one of the bigger weaknesses of Unreal Engine.
It uses a physics engine that is not guaranteed deterministic.
Additionally, the way it steps physics by frame time, means that you won’t even get the exact same step sizes on all clients (or server.)
Thus, you cannot keep physics 100% in sync.
By contrast, a deterministic physics engine with fixed step size would achieve this without too much network bandwidth use.

If you turn off simulation on client objects, and just let them use replication from the server, it will be reasonably accurate across clients.
There are two draw-backs:

  1. The response time for actions will be longer, because it requires a server round-trip.
  2. It uses more network bandwidth.