How to adapt GAS to CharacterMovementComponent

I met a problem that in weak net environment, server can’t promise its ability status is same as the client’s when receives movedata from client.

For example, client activates [ability A] and activates a [RootmotionSource B]. When server receive that move data, the [ability A] is probably not activated or has been cancelled, which may cause pull-back to client cause there’s no [RootmotionSource B] in server.