Our users are reporting matchmaking bans after canceling a matchmaking ticket, because the cancellation of matchmaking tickets sometimes succeeds, but a match is still being created with the ticket directly after canceling. This causes the player to never connect to the game, because the game assumed the matchmaking was correctly canceled. Even calling GetMatchmakingTicket after canceling still shows "CancellationReasonString": "Requested" and no MatchId.
This is our matchmaking flow:
1. Player calls CreateMatchmakingTicket. We store the TicketId of the response and use it for the next calls.
2. We call GetMatchmakingTicket every 6.1 seconds. We check the CancellationReasonString to see if we should stop matchmaking. If the MatchId is not empty, we retrieve the match with GetMatch and use our multiplayer engine to join the game.
3. During the polling of GetMatchmakingTicket, the player is able to cancel the matchmaking with CancelMatchmakingTicket. If this is causing a MatchmakingTicketAlreadyCompleted error, the player will still join the game during the next poll of GetMatchmakingTicket. If it's not causing an error, matchmaking is canceled.
Matches should never be made with canceled tickets. This has to be a bug in PlayFab.
I'm hoping you can look into this issue as soon as possible.