Version: en

Updates and Releases



  • Bug Fix: Added missing relaxation implementation for RangeControl.ReplaceMin
  • Bug Fix: Fixed issues with casting in Equality and InList rules
  • Bug Fix: Fixed an issue with the Sum causing it to fail in some cases where the value was not a double
  • Rule Based Matchmaking: Added Players to Match Properties when using Rule Based Matchmaking
  • Minor fixes to rules
  • Stability and infrastructure fixes


  • Rule Based Matchmaking: Added support for Ticket.Age
  • Bug Fix for Rule Based Matchmaking: Fixed an issue with the Min, Max, Avg, and Median operations causing them to fail in some cases where the value was not a double


  • Improve handling of transient errors in the Session Service
  • Detect slow match function execution and attempt to recover when detected
  • Bug Fix for Rule Based Matchmaking: Add missing rules GreaterThan and GreaterThanEqual
  • Bug Fix for Rule Based Matchmaking: Fix errors that could occur when using Match.Tickets, Match.Players, Team.Tickets, and Team.Players


  • Bug Fix: Prevent an issue that could prevent the Matchmaker from running as expected if a non existing backfill function was called from Backfill V1
  • Bug Fix: If a GET/DELETE ticket is called with no id, returns 400 Bad Request
  • Bug Fix: Stabilization of an internal service that could lead to dip in allocations
  • Bug Fix: 429 Rate Limiting answers to POST tickets could be sent even if the max pool size was not reached.


  • Bug Fix Backfill: Fix an issue where some backfill tickets would never time out


  • Bug Fix Match Function: Fix an issue where match function would not be able to query tickets for a little while when query service is restarted.


  • Bug Fix Rule Based Matchmaking: Protect against bad cast in rules
  • Bug Fix Rule Based Matchmaking: Create an error proposal for malformed tickets
  • Bug Fix Rule Based Matchmaking: Add better error handling when building matches
  • Bug Fix Rule Based Matchmaking: Rule validation will return an error in case of a typo
  • Bug Fix: Fix an issue that could cause ticket assignation to never happen.


  • Rule based match logic is now available and the default way to match tickets together. (refer to the documentation for more information on how to configure it)
  • Backfill: Logging now provides more details when backfill tickets are being deleted
  • Bug fix: Prevent tickets from being matched in two different matches when an allocation has failed


  • Standard Function: Added a parameter on the team definition to allow partial matches after a given amount of time
  • Backfill V2: Added metrics to the customer dashboard
  • Backfill V2 Bug Fix: Fix an issue where a backfill approval would fail if a DGS starts before we get the connection information
  • Backfill V2 Bug Fix: Fix an issue where if an assignement failed it would not be retried
  • Backfill V2 Bug Fix: If a DGS takes too long to start, a backfill ticket could be expired by the time the DGS tries to approve it. We now give a grace period to a backfill ticket (1 minute by default) while waiting for a backfill ticket to be updated with a connection. This prevents the backfill ticket to be deleted before the DGS starts. Once the connection is added on the backfill ticket, the ticket will expire after a certain amount of time without update.
  • Seamless Multiplay Integration: Providing an AWS certificate to authenticate Matchmaker against Multiplay is no longer required
  • Bug Fix: Fix an issue where Matchmaker would return an error if auth is off but the x-on-behalf-of header is used anyway
  • Bug Fix: The Protobuf APIs was missing the support of the x-on-behalf-of header. This as been fixed
  • Bug Fix Standard Match Function : Added a property IgnoreAssignmentErrors in configuration to prevent assigning assignment errors for ticket that may be compatible with other functions
  • Bug Fix: The validation of the config did not enforce that the bucket size had a correct value when using the segment behavior Bucket Size


  • Bug fix : Fixes an issue where config service and Director would never become ready in a the case of cascading failing ready check on Google Storage


  • Stability improvement


  • Allow a service with an all-access token to read a ticket on-behalf-of another user


  • Deprecated TLS 1.0 & 1.1
  • Added backfill panels to the dashboard
  • Bug fix: fixes an issue in the standard match function where the tickets would take a long time to be matched or not be matched at all
  • Bug fix: respect On-Behalf-Of header when deleting tickets
  • Bug fix: standard match logic now creates error assignments for tickets which match a config's filters but are incompatible with the config


  • Add reliability settings for the DB to prevent issues when Kubernetes is being updated


  • Bug fix : Fix an issue that could cause Standard Match Function to crash


  • Add TLS 1.2 support only on a separate url


  • Standard Match Functions now fills up minimum teams with minimum players first
  • Add High Availability for Redis
  • Match Functions are now properly restarted on upgrade to match the latest version
  • Tickets assigned / Failure metrics are now more accurate
  • Bug fix : Backfill V2 - Fixes an issue where in some cases, when a backfillV2 ticket is in the process of being deleted, it can prevent a match function from running
  • Bug fix : Fixes an issue where if we are not able to the content of a config, it would prevent the Director from running any match functions.


  • Bug fix: Backfill V2 - Fix an issue where approving a backfill V2 Ticket would cause a error preventing from being approved


  • Adding Tracing information in logs for Ticket
  • Bug fix: Fix for allocation metrics
  • Bug fix: Fix for internal metrics regarding Backfill
  • Bug fix: When the config inside the configuration of Match Function was empty, the Match Function could not run. This is now fixed.
  • Bug fix: Calling delete on a Backfill Ticket now release the tickets.


  • Bug fix: Using casing in configuration for the name of a match function does not prevent function from running anymore.


  • New documentation architecture! The docs have re-organized to make it easier to onboard and operate the service.
  • Added configurable matchmaking logic, no custom function necessary.
  • Multiplay allocations are now more resilient, reliable, and scalable.
  • Bug fix: Calling delete on a function that does not exist returns a 404 instead of 200.
  • Bug fix: Match functions no longer have a chance to hang or crash during backfill ticket approvals.
  • Bug fix: We now keep backfill tickets alive for 20 seconds instead of 5 seconds. If the game server does not approve or update a ticket during that period, the ticket will expire.
  • Bug fix: The dashboard (from 2.8.7) is now fully rolled out and accessible for current users. Follow the link below to log in, then go to Manage > Matchmaking Dashboard V3. If you encounter issues using the dashboard, please verify your login account is a member of the Unity Project. If you're unable to login, please reach out to your partner manager.
  • Bug fix: We do not try to call configured Match Functions that do not exist or have been deleted.


  • Removed need for database restart in some cases during upgrade



  • Fixed issue when reading metadata from match functions


  • Internal infrastructure stability improvements during deployment


  • Stabilization
  • Backfill tickets now live longer before they are invalidated
  • Match Functions API now returns the implementation name


  • Zero downtime deployments
  • High priority bug fix that caused occasional 30 second time-to-match increases


  • Delete tickets now works for on behalf of tokens
  • Core matchmaking cycle has additional health monitoring


  • Backfill v2: Adding backfill v2 API which is a big change from the previous backfill design. Match functions can now create/update/query backfill tickets which represent an ongoing request to assign tickets to a DGS. DGS's can approve/update/create/delete backfill tickets as well as their needs change. For full details, view the backfill v2 how to and api sections of the documentation



  • Logs are provided in an updated format that simplifies the parsing needed to read them
  • New rate-limiting based on the pool size to start rejecting new ticket creation requests when a certain threshold is reached
  • General stability and scale improvements


  • Bug fix: Functions had a chance to fail and not restart due to an expiration bug
  • Bug fix: Restore function metrics in dashboards
  • Bug fix: Logs would consistently throw a "Failed parsing log line: invalid character" on certain startup and user console logs
  • Updated FAQ for Optional cross-platform play configuration


  • Bug fix: Health check fix for the Backfill API to ensure continued monitoring and stability


New features

  • Player ID support fully integrated (contact us to add your ID domain)
  • Match assignment properties renamed but still supported. AssignmentProperties is deprecated, but is not changed (redirects to MatchProperties).
  • Multiplay credentials are now validated when creating configs
  • Problem details are now exposed on many errors
  • Configs now support freeform IDs through the PUT API, but continue to generate a GUID if using POST. For example, competitive-prod. Download the updated command-line interface (CLI).
  • Listing configs is now sorted alphanumerically ascending by default
  • Support for developer JWT tokens

Performance improvements

  • Ticket queries are now significantly higher throughput due to a new caching layer
  • Improvements around internal health and metrics detection
  • Config service and frontend rate limiting


  • Minor: Deprecated unused ticket.Status field


  • Function logs work again and are back to structured JSON
  • Auto-scaling for production loads (notify us if you plan on testing this functionality)
  • Backfill scaling improved
  • Internal live monitoring and alerting (2.4.0)
  • Mitigation capabilities for backfill storms and function destabilization (2.4.3)
  • Randomized ticket query order and faster ticket query functionality (2.4.3)
  • A new ProblemDetails-based response contract for service errors instead of empty 500's (2.3.0)
  • Command-line interface (CLI) has been updated to fix some incorrect config naming (.unictl is back to .mmbeta for consistency with the name of the CLI) and with an auth fix for having a longer refresh token (resulting in fewer logins and no more 412 Preconditioned Failed errors). Download the updated command-line interface.
  • New benchmarking for high-throughput ticket query
  • New QoS Match Function Sample


  • Special casing filters when Min == Max; the filter is executed with Min and Max both inclusive to allow for the exact matching of a single value


  • SegmentationSize replaced with Value
  • Some of the language for segmentation in the API docs has been addressed
  • New Platform and Iteration how-to section: using pools to perform sandboxing
  • Fix for function deployments sometimes not updating


  • Fix for accepting additional standard application/JSON headers (for example, application/JSON; charset=utf-8)
  • Fix for ticket bodies including friendly id field
  • Command-line interfact (CLI) respects refresh tokens resulting in fewer login prompts
  • CLI uses single sign-on browser pop up
  • Bug fixes and scaling right-sizing in production for beta


  • Initial release of Multiplay matchmaker
  • Beta documentation published (Getting started, User guide, How-to's, FAQs, Tutorials, API information)
  • The mmbeta command-line interface (CLI) for interacting with matchmaking
  • Server, developer, and player identity support
  • A sample server and client Unity project containing up-to-date client packages with source
  • Improved match function loading, logging, status, and management
  • Increased function size limit to 50MB
  • Performance improvements
  • Stress/scale testing to 100,000+ concurrent players for the default scale-configuration for beta (notify us if you want to stress test during the beta window)
  • General API, serialization, and validation improvements

Dev team work in-progress#

  • Revised backfill design
  • Customizable metrics dashboard

Known issues#

This is living documentation that is kept up-to-date by the engineering team who is supporting the matchmaking beta. When known issues are discovered, they will be added to the following table.

Backfill V2 low populationWith low populations, approving a backfill v2 ticket with no server-side changes in the request eventually results in the backfill ticket getting cleaned up as "stale." Create a new backfill v2 ticket if you recieve a 404 while waiting for new players.Fix in Progress with next release
Player identity integrationContact us to set up player identity integration and testing as part of the matchmaking beta.Not applicable
Failed parsing log line on command-line interface (CLI)Use the raw output formatter on the logs command to render structured logs.Fixed in the 2.5.3 release. Download the latest CLI.
Backfill ticket approval will fail if Multiplay has not yet completed allocation for the ticket.If a game client receives a 500/503, it should continue to retry until a different response code is received.v2.9.11 has changed the error code to 503, but a proper fix is in progress.