Matchmaker allocating multiple servers

After uploading a new build, if I try to connect to the matchmaker before the build has finished installing, several servers will be allocated for the same playerId, most often I see 3 servers get allocated in this scenario.

Queueing in the matchmaker seems to speed up the install process - sometimes if I don't force an allocation, the install process will just never take place and I can come back hours later to servers that have not been updated (and have a very long MM queue time because of this). Other times the install process seems to begin right away and the entire process is smooth.

Regardless of why this happens, the matchmaker allocating multiple servers for the same player seems like a bug. The client is only registering 1 MM ticket. Checking the logs of the 3 servers that come up, all servers claim the MM has assigned the same player ID in their allocation payload. This can also lead to weird behaviour where multiple players that are queueing do not end up in the same server (I have a minimum player count of 1 set, due to the nature of my game).

This could be due to multiple things:

Note that if you set the "Min available servers" in the fleet scaling setting to 1, you will end up with 3 "Available" servers. Those servers are just ready to go and will become "Allocated" when the matchmaker place players into it. You can set the minimum to 0, but it will make the matchmaking time longer (as it can take some time to spin up those servers up). https://docs.unity.com/game-server-hosting/en-us/manual/concepts/available-servers

Hey, neither of these are the case - this only occurs during the time a new build is taking place and using "force players to use new version". While searching for a match on a single client with a single MM ticket during a new build install, the allocations go from 0 to 3 instantly the moment the build install is done. It shouldn't have anything at all to do with backfill, because this is not backfill, it is just placement of a single player into a match where there are 0 matches/allocations currently available - although the queue is a backfill queue.

Regarding the other bug, backfill is working fine other than the fact that a playerId cannot be assigned backfill into a game the matchmaker thinks they are already in. The reason the playerId is in the game yet they're also in the queue can be for multiple reasons:

  1. They never connected to the initial match they queued for and are timing out (in this place, they are on the backfill ticket but not in the game). ie: The matchmaker assigned the allocation for the player, but they never connected to the server they were allocated. This is a normal situation that can occur in several scenarios including just cancelling their queue or alt F4ing before connecting to the match. This is how the sample examples do this and in fact the samples never clean up the player IDs that never connected, they will stay on the backfill permanently and never be able to rejoin the game if their initial connect attempt failed.
  2. They are multi-clienting with the same player ID - expected behaviour from the MM would be to put them in the game they're already in the backfill for, but instead they get put into another match. New playerIds that queue can get into the backfilling match with no problem - it is only a problem for the playerId that is multi-clienting or failed to connect to the existing match.
  3. They are impersonating another user who is already playing. Same as (2)

Regardless of the reason, they cannot be assigned to a match the matchmaker believes they're already in (eg: they're still on a backfill ticket), even though this is a totally valid scenario where the player is likely doing something malicious or cheating (or in some cases, simply just having trouble connecting).