Why doesn't the FlexMatch send the ip address of the dedicated server to some players?

Hello

I have an issue that some players don’t get the ip address of the dedicated server.

If 5 players gather, a game session is created by FlexMatch and then the FlexMatch sends the ip address of the dedicated server to the 5 players but sometimes the ip address is not sent to some players by the FlexMatch. So less 5 players are in a lobby and players who don’t get the ip address have timed out. So the PlayerStatus in GameLift Console is changed to “Timed Out” from “Reserved”. The rest of players are backfilled to the lobby…

Why doesn’t the FlexMatch send the ip address of the dedicated server to some players?

@mskiller2000 - sorry you are having problems here.

Firstly, “ip address is not sent to some players by the FlexMatch” - do you mean describe matchmaking does for the ticket id does not contain an ip addresses in the GameSessionConnectionInfo ?

Secondly, are these tickets in COMPLETED state?

Thirdly, can you describe the flow in a little more detail? How are the players placed in the same match, how are they getting their connection infor etc.

It may be easier to provide ticket ids etc and I can get the GameLift service team to take a look.

After a player sends the matchmaking request to FlexMatch, a client tracks down the ticket status through describe_matchmaking() in Lambda by polling. The output of the api includes an ip address and a port of a dedicated server in Fleet.

I didn’t check whether the ticket status of the player who didn’t get the ip address was “COMPLETED” or not but before I checked other cases. All ticket status in the other cases were “COMPLETED” but FlexMatch didn’t send an ip address and a port of a dedicated server.

The matchmaking flow is that a client sends its matchmaking request without its ticket id. “start_matchmaking” requests the matchmaking to FlexMatch. The api returned a new ticket id for the matchmaking request. The ticket id is sent to the client to track down the status of the ticket by “describe_matchmaking()”. Now SNS Topic is not used. So the “describe_matchmaking()” is often called to get the ticket status, an ip address and a port of a dedicated server.

This is the function for the “start_matchmaking” in Lambda.
image

This is another function for the “describe_matchmaking” in Lambda.

This is the screenshot that I took when one of players couldn’t get to a lobby but I didn’t check if the player’s ticket status was “COMPLETED”. Also, I didn’t check whether the player didn’t get the ip address of the dedicated server or not but before when players couldn’t get to a lobby, I looked at their ticket status. It was “COMPLETED” without an ip address of a port.

The ticket status is “Timed Out”. It means that it was “Reserved”.

FleetId : fleet-d013596a-b036-41f2-8a42-77a2b3be7c5e
Game session: arn:aws:gamelift:us-west-2::gamesession/fleet-d013596a-b036-41f2-8a42-77a2b3be7c5e/1ef17d2b-6b02-4fe1-9bcf-e2bdf0c80385
PlayerSessionId : psess-afcb0fa3-0071-40a6-84d0-344c23fbb84a
TicketId : Unfortunately, I don’t have it.

Thank you for taking your time!!!

Thanks for the info. I’ve asked the GameLift service team to take a look. Hopefully there will be an update soon.

If this is an urgent/production issue, you will get a faster response if you open an issue through AWS support.

Hi!

We’re looking into the issue on our end to confirm what happened. Ip and port information being null can occur when the matchmaking ticket is CANCELLED, so it may be worth trying to find a ticket Id where this failure has occurred and verifying that it was not in state canceled (since you mentioned “but I didn’t check if the player’s ticket status was “COMPLETED””).

Since you mentioned; “I looked at their ticket status. It was “COMPLETED” without an ip address of a port.”, if you could give us a ticket Id which entered that state it would let us debug the issue further.

Thank you for investigating the issue. I’ll let you know when it happens again with a ticket id.