FlexMatch: changing ruleset in a matchmaking configuration does not take effect

Hi

I have been using FlexMatch for a log time now. I have a matchmaking configuration with its ruleset that receive all the tickets. Until approximately 2 weeks ago I was able to change the ruleset associated to the matchmaking configuration and the change most of the times took effect in a couple of minutes. For instance if I had a ruleset with maxplayers=2 i changed the ruleset on the matchmaing configuration with maxplayers=4 and the matchmaker honored the change.

Since a week ago when I change the ruleset on the matchmaking configuration it just does not take effect for a long time. I have to wait half an hour or more for the change to take effect.

What is the expected behaviour and is there a workaround about this?

Thanks in advance!

Hey @bcxpro-

We haven’t changed anything that we are aware of that would be causing the behavior you are indicating. So that we can investigate, can you provide us with:

  1. Matchmaking configuration (before and after, if different)
  2. Matchmaking rule set name (before and after, if different)
  3. Rule set changes (before and after)
  4. Any ticket Ids for tickets that should have been matched with the new rule set and were not
    This should give us enough information to dive in and see what’s happening.

Hi @Matchmaker,

Thanks for your help.

I made a small example simpler than my production configuration:

Initial matchmaking configuration:

    {
"Name": "dummy-config",
"GameSessionQueueArns": [
"arn:aws:gamelift:us-west-2:089170083XXX:gamesessionqueue/p-us-west-2-queue"
],
"RequestTimeoutSeconds": 1800,
"AcceptanceRequired": false,
"RuleSetName": "x1vs1fixed",
"AdditionalPlayerCount": 0,
"CreationTime": 1563296823.629,
"GameProperties": [
{
"Key": "gameModeName",
"Value": "Dominion"
}
]

Initial ruleset:

    {
"name": "x1v1fixed",
"ruleLanguageVersion": "1.0",
"teams": [
{
"name": "blue",
"maxPlayers": 1,
"minPlayers": 1
},
{
"name": "red",
"maxPlayers": 1,
"minPlayers": 1
}
]
}<br>

I send tickets like this that immediately match in 1v1 matches:

    {
"TicketList": [
{
"TicketId": "645364-0",
"ConfigurationName": "dummy-config",
"Status": "COMPLETED",
"StartTime": 1563299507.35,
"EndTime": 1563299529.919,
"Players": [
{
"PlayerId": "FakePlayer-t0-645364-london",
"PlayerAttributes": {},
"Team": "blue",
"LatencyInMs": {
"eu-central-1": 51,
"eu-west-2": 31,
"us-east-1": 89,
"us-west-2": 134
}
}
],
"GameSessionConnectionInfo": {
"GameSessionArn": "arn:aws:gamelift:eu-west-2::gamesession/fleet-9034f8ac-1bf0-4bcb-9e27-528151a402e6/7ff28b52-a6a6-477f-9479-dff6eec6faaf",
"IpAddress": "3.8.150.174",
"Port": 7001,
"MatchedPlayerSessions": [
{
"PlayerId": "FakePlayer-t0-645364-london",
"PlayerSessionId": "psess-13fc3fb6-e0f2-409a-ae28-9d890f396014"
}
]
}
}
]
}<br>

Then I changed the ruleset on the matchmaking configuration with a 5v5 ruleset.

    {
"Name": "dummy-config",
"GameSessionQueueArns": [
"arn:aws:gamelift:us-west-2:089170083XXX:gamesessionqueue/p-us-west-2-queue"
],
"RequestTimeoutSeconds": 1800,
"AcceptanceRequired": false,
"RuleSetName": "xFixed5vs5Strict",
"AdditionalPlayerCount": 0,
"CreationTime": 1563296823.629,
"GameProperties": [
{
"Key": "FlexMatchmaking",
"Value": "false"
},
{
"Key": "gameModeName",
"Value": "Dominion"
}
]
}<br>

The ruleset:

    {
"name": "xFixed5vs5Strict",
"ruleLanguageVersion": "1.0",
"teams": [
{
"name": "blue",
"maxPlayers": 5,
"minPlayers": 5
},
{
"name": "red",
"maxPlayers": 5,
"minPlayers": 5
}
]
}<br>

I send tickets again and the system keeps giving me 1v1 matches instead of 5v5. Eventually after approximately 25 minutes it started matching 5v5 matches.
When I changed back again to 1v1 it took 1 hour until it started producing 1v1 matches, it gave 5v5 matches until one hour passed.
ticket id examples:

All these tickets, for instance gave a 5v5 match when the 1v1 rule was already set up in the configuration 45 minutes ago.

2019-07-16 19:13:15.757817 FakePlayer-t0-02818b-saopaulo ticket_id: 02818b-0
2019-07-16 19:13:26.386389 FakePlayer-t1-02818b-ohio ticket_id: 02818b-1
2019-07-16 19:13:30.097920 FakePlayer-t2-02818b-ohio ticket_id: 02818b-2
2019-07-16 19:13:31.460112 FakePlayer-t3-02818b-oregon ticket_id: 02818b-3
2019-07-16 19:13:32.406400 FakePlayer-t4-02818b-oregon ticket_id: 02818b-4
2019-07-16 19:13:33.994286 FakePlayer-t5-02818b-ohio ticket_id: 02818b-5
2019-07-16 19:13:37.478166 FakePlayer-t6-02818b-oregon ticket_id: 02818b-6
2019-07-16 19:13:42.551817 FakePlayer-t7-02818b-london ticket_id: 02818b-7
2019-07-16 19:13:43.486522 FakePlayer-t8-02818b-frankfurt ticket_id: 02818b-8
2019-07-16 19:13:45.854938 FakePlayer-t9-02818b-saopaulo ticket_id: 02818b-9<br>

Example ticket:

    {
"TicketList": [
{
"TicketId": "02818b-9",
"ConfigurationName": "dummy-config",
"Status": "COMPLETED",
"StartTime": 1563304425.974,
"EndTime": 1563304430.545,
"Players": [
{
"PlayerId": "FakePlayer-t9-02818b-saopaulo",
"PlayerAttributes": {},
"Team": "red",
"LatencyInMs": {
"eu-central-1": 194,
"eu-west-2": 221,
"us-east-1": 195,
"us-west-2": 216
}
}
],
"GameSessionConnectionInfo": {
"GameSessionArn": "arn:aws:gamelift:us-west-2::gamesession/fleet-4b2fbc94-b8f5-4ac4-816c-e64c7a27637f/b427206b-2a50-4555-aa5e-becb71c09e92",
"IpAddress": "34.213.77.16",
"Port": 7001,
"MatchedPlayerSessions": [
{
"PlayerId": "FakePlayer-t9-02818b-saopaulo",
"PlayerSessionId": "psess-3ab22cd7-0286-4559-9d55-c86eb6f6e46a"
}
]
}
}
]
}<br>

Example of one of the first tickets that produced a 1v1 match after 1 hour producing 5v5 matches.

    {
"TicketList": [
{
"TicketId": "a22791-0",
"ConfigurationName": "dummy-config",
"Status": "COMPLETED",
"StartTime": 1563305253.95,
"EndTime": 1563305271.411,
"Players": [
{
"PlayerId": "FakePlayer-t0-a22791-oregon",
"PlayerAttributes": {},
"Team": "blue",
"LatencyInMs": {
"eu-central-1": 152,
"eu-west-2": 153,
"us-east-1": 66,
"us-west-2": 39
}
}
],
"GameSessionConnectionInfo": {
"GameSessionArn": "arn:aws:gamelift:us-west-2::gamesession/fleet-4b2fbc94-b8f5-4ac4-816c-e64c7a27637f/93b2e322-f043-4096-b795-553f89b986e0",
"IpAddress": "34.213.77.16",
"Port": 7001,
"MatchedPlayerSessions": [
{
"PlayerId": "FakePlayer-t0-a22791-oregon",
"PlayerSessionId": "psess-ba4e3951-433b-4d90-a267-deeaf362435e"
}
]
}
}
]
}<br>

Best,

bcxpro

I run into something similar, all I did was changing minPlayers from 1 to 4, and it still start game with just 1 player. It seems to be fixed after I deleted the fleet and created a new fleet.

It should not be related to the Fleet because the matchmaking is done before placing the match on the fleet. I have tested many times the matchmaker without an active fleet and it was able to create potential matches that eventually did not happened because of placing timeout.

I think it is probable that the time it took to you recreating the fleet was enough for the rule set to take effect.

Hi-

Thanks for bringing this to our attention. We have tracked this down to a recently introduced bug. We have a fix for this and are currently working through the process of getting this released. This is a priority for us and we will update this thread once the fix is available in all regions.

In the meantime the workarounds include:

  1. If in development or similar, don’t send any matchmaking tickets for 15 minutes or so. This will allow for the old matchmaker to wind down and for it to pickup the correct settings when it is reinstantiated.

  2. If in prod, the workaround would be to create a new matchmaker and transition traffic to that one instead

Once this bug is fixed, behavior should be restored to the original state, which is one where changes should take effect in a second or few.

The fix for this bug was deployed over the weekend. If you see anything else which does not appear to be operating as expected please let us know.

Apologies for the issue, and thanks for using FlexMatch.

Indeed, I was able to change the rulesets successfully last Saturday on us-west-2.