receivedTurnEventForMatch giving stale data

In my turn-based game, I receive GKListener event receivedTurnEventForMatch and decode the match.matchData. On occasion, the matchData is clearly stale and is from the previous turn. If I call the MatchMaker ViewController up and select that same match, the data is not stale, so it's not a matter of not calling endTurn.

I have tried both loadMatchWithID and loadMatchesWithCompletionHandler after receiving the receivedTurnEventForMatch, but the data is still stale.

Advice?

At the moment, my workaround is to call loadMatchWithID after a 2-second delay if the match received by receivedTurnEventForMatch shows that the current participant is not the localPlayer.

Two-second delay seemed to work for awhile - I even saw it trigger the loadMatchWithID because it got stale data. Then, I even got stale data on a loadMatchWithID. Not sure how to proceed with this.

receivedTurnEventForMatch giving stale data
 
 
Q