Gamelift Matchmaking ticket status flow

Hey community,

We are launching a game with lots of
expected players rather soon and during our latest tests we found some
confusing information.
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
    be processed.*
  • 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.

Kind regards,


Hi Stefan,

Thanks for reaching out for this issue. Sounds like there was something went wrong since if you accepted the match, the ticket shouldn’t be in CANCELLED. Can you give us the ticketId and region so we can investigate what was wrong there?

Best regards,


Here are the infos:
TicketId: 594307a6-adf1-4c94-ad2b-0dd56f49cfc1
Region: eu-central-1
Approximate Timestamp: 2019.03.11-14.06.13

Thanks for looking into it!

Any news on the ticket status? Is this a possible outcome I have to implement in my client?

Hey @Luming-AWS

How is it looking so far?