As you can see in the screenshot below, if I make concurrent requests to start_matchmaking ie: 8 requests at the same time, when the gamelift instance can only support 4 players per session, GameLift will allocate two groups of 4/4 players to the same port / instance.
Do I have to build some sort of system to call start_matchmaking in sequential order? I’m using AWS Lambda and API Gateway, and the Gomuku example uses the same.
Similar issue to this thread: Gamelift returning the same IP address for different game session?
Although in our instance, we do have multiple instances registering different ports. Just sometimes, if the requests are made at the same time, two game sessions are allocated the same instance.
Are you sure you are registering different ports? I would check your Process Parameters passed along during OnProcessReady and ensure each process launched is setting the appropriate port.
It does sound like FlexMatch is working as expected, 8 requests, 4 players per session should result in 2 game sessions starting and these will be launched extremely close to the same time. You should be able to call describe-game-sessions to get the milliseconds for creation time (I would suspect they are different).
If you still have problems, can you provide a fleet id, regions and ideally matchmaking ticket ids or gamesession ids impacted? I then will get someone from the GameLift team to investigate.