Roblox AnimationPlayed on server out of order compared to client

I am playing M1 combat animations on the client. I am doing server side checks via AnimationPlayed event replication to the server. One check I do is make sure animIDs are played according to the M1 Combat order, e.g, punch1, punch2, etc. In addition there is the blocking animation, which I also play on the client and check for on the server via AnimationPlayed.

There are times where I’d activate block to interrupt the m1 combat sequence, where the client would think punch2 anim played after enabling and disabling block anim (on loop as long as block is enabled), but the server would think punch2 happened before enabling and disabling block anim. I don’t know if it’s some sort of network aggregation roblox is doing and it cannot determine the order of events when it hits the server? The order of animations is crucial, so it would be nice to have some closure.

I’ve also experienced this on just the regular m1 sequence without blocking, where it would get two m1 anims out of order if their animationplayed events happen within the same frame on the server, allowing a one frame delay to get things in order fixed that issue.

Is this intended behavior that is just undocumented, or is there something I am missing?