We are launching a game with lots of
expected players rather soon and during our latest tests we found some
I have a question about the matchmaking status flow described here and here.
Here are the descriptions of the
possible ticket states:
Current status of the matchmaking
QUEUED* – The matchmaking request has been received and is currently waiting to
- SEARCHING*-- The matchmaking request is currently being processed.*
REQUIRES_ACCEPTANCE * – A match has been proposed and the players must
accept the match (see AcceptMatch ). This status is used only with
requests that use a matchmaking configuration with a player acceptance
PLACING* – The FlexMatch engine has matched players and is in the process of
placing a new game session for the match.*
COMPLETED* – Players have been matched and a game session is ready to host the
players. A ticket in this state contains the necessary connection
information for players.*
FAILED* – The matchmaking request was not completed. Tickets with players who
fail to accept a proposed match are placed in* FAILED**status.
- CANCELLED*-- The matchmaking request was canceled with a call to StopMatchmaking.*
TIMED_OUT* – The matchmaking request was not successful within the duration
specified in the matchmaking configuration.*
Matchmaking requests that fail to
successfully complete (statuses FAILED, CANCELLED, TIMED_OUT) can be
resubmitted as new requests with new ticket IDs.
The other source actually describes
the AcceptMatch flow:
When FlexMatch builds a match, all
the matchmaking tickets involved in the proposed match are placed into status REQUIRES_ACCEPTANCE*. This is a trigger for your game to get acceptance from all
players in the ticket. Acceptances are only valid for tickets when they are in
this status; all other acceptances result in an error.*
To register acceptance, specify the
ticket ID, a response, and one or more players. Once all players have
registered acceptance, the matchmaking tickets advance to status PLACING*, where a new game session is created for the match.*
If any player rejects the match, or
if acceptances are not received before a specified timeout, the proposed match
is dropped. The matchmaking tickets are then handled in one of two ways: For
tickets where all players accepted the match, the ticket status is returned to SEARCHING to find a new match. For tickets where one or more players
failed to accept the match, the ticket status is set to FAILED*, and processing is terminated. A new matchmaking request
for these players can be submitted as needed.*
From that I get, that the status the
ticket will be in after accepting a match will either be PLACING, SEARCHING, or
Now my problem is, that after a
ticket was accepted by me as a client, the status I get on it is CANCELLED and
it’s reason is “FAILURE_TO_ACCEPT” with the message “Matchmaking
canceled due to failure to accept a match within the time out period.”
I am very sure that my acceptance of the ticket did go through, and the
Matchmaking Configuration on AWS does not show any Acceptance timeouts.
Is there anywhere a correct
documentation about the actual flow of states on a ticket? Maybe even a graph?
What else could have gone wrong?
I appreciate all answers! Thank you.