I want players to be able to join mid-game, but they just allocate a new server.
I’m already calling ApproveBackfillTicketAsync() every second to approve new requests and keep the service active.
I only have one queue with a single pool.
This is my Matchmaker configuration:
{
"Name": "AdventureWorld",
"MatchDefinition": {
"Teams": [
{
"Name": "UserTeam",
"TeamCount": {
"Min": 1,
"Max": 1
},
"PlayerCount": {
"Min": 1,
"Max": 4
},
"TeamRules": []
}
],
"MatchRules": []
},
"BackfillEnabled": true
}
Same Issue. Any idea how to fix it ?
Hi, folks! 
Assuming you’ve got your CreateBackfillTicketAsync() call working right and you’re feeding that ticket ID into your ApproveBackfillTicketAsync() loop, I think the issue can be because of a race condition.
When an existing server just gets a player, its backfill ticket is locked for a second or two while it waits for your server to call ApproveBackfillTicketAsync() and confirm the new player.
During that lock window, if another player queues up, the matchmaker sees it can’t backfill right this second. But it can instantly create a new server because of your Min:1 rule.
You can fix it by changing the Min value and adding a Relaxation rule to force the matchmaker to wait for a few seconds and try to backfill before it gives up and creates a new server, such as:
"PlayerCount": {
"Min": 4,
"Max": 4,
"Relaxations": [
{
"Type": "RangeControl.ReplaceMin",
"AgeType": "Youngest",
"Value": 1,
"AtSeconds": 5
}
]
}
Hope this helps!
You can refer to the following docs for more information: