Either some vital data was lost in transit between players, or your data/game version don't match perfectly (it could also be caused by a user attempting to cheat, but that's not very likely).
The way the game works is that everyone is basically a server unto themselves. The other players send data over and your machine gives the appropriate orders/movements to the "them" on your copy of the game. Because of this, if some of those orders get lost or the same action does not cause the exact same result on all players' machines, you end up losing sync.
Once a game has desynced, it cannot be recovered. As time goes on, what you see and what another player sees will diverge more and more, even up to a point where the entire outcome of the game may differ. So if you get a desync, there is not much point in continuing to play that match.