If one of your objects are owned by the non-server, then they may not actually collide on the server.
Smooth Sync interpolates between positions and the chances of it sending the literal collision point and then actually interpolating to that position on non-owners (or clients if no owner) and then I don’t even know if the physics engine would count going to the contact point even as a collision, seems very slim.
Maybe you can put a non physics collision thing (called Triggers in Unity, I forget what Unreal does for this) that is bigger so that it should get “contacted” on the server each time? Or maybe RPC over some client hits since your client positions are client determined anyway, I don’t see why the collision can’t be client determined as well from a same-level of cheating perspective at least.