Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

Matchmaking issue on tvOS with GKMatchmakerViewController

Hello,

We are working on a real-time 2-player online game targeting multiple Apple devices. The following issue only occurs on tvOS:

When selecting matchmaking to connect with another player, the native Game Center interface opens and begins the matchmaking process.

Almost immediately, the following log appears in the console, and the matchmaking screen remains indefinitely without completing:

Timeout while starting matching with request: <GKMatchRequestInternal 0x30d62f690> {   
  defaultNumberOfPlayers : 0   
  isLateJoin : 0   
  localPlayerID : U:bea182d69b85f0839e3958742fbc4609   
  matchType : 0   
  maxPlayers : 2   
  minPlayers : 2   
  playerAttributes : 4294967295   
  playerGroup : 1   
  preloadedMatch : 0   
  recipientPlayerIDs : <__NSArrayM 0x3034ed5c0> {}   
  recipients : <__NSArrayM 0x3034ee280> {}   
  restrictToAutomatch : 0   
  version : 1   
  archivedSharePlayInviteeTokensFromProgrammaticInvite, inviteMessage, localizableInviteMessage, messagesBasedRecipients, properties, queueName, recipientProperties, rid, sessionToken : (null) 
} . Error: (null)

However, the task does not complete when the log appears (our Debug.Log are nerver called).

But if we manually cancel the matchmaking process, the "User cancel" log is correctly triggered.

Here is a code snippet for the request :

var gkMatchRequest = GKMatchRequest.Init();
gkMatchRequest.MinPlayers = 2;
gkMatchRequest.MaxPlayers = 2;

var matchRequestTask = GKMatchmakerViewController.Request(gkMatchRequest);
matchRequestTask.ContinueWith(t => { Debug.LogException(t.Exception); }, TaskContinuationOptions.OnlyOnFaulted);
matchRequestTask.ContinueWith(t => { Debug.LogInfo("User cancel"); }, TaskContinuationOptions.OnlyOnCanceled);
matchRequestTask.ContinueWith(t => { Debug.LogInfo("Success"); }, TaskContinuationOptions.OnlyOnRanToCompletion);

We have tested this on multiple devices and network types (Wi-Fi, 5G, Ethernet), but we consistently encounter this bug along with the same log message.

Could you please help us understand or resolve this issue?

Thank you.

Answered by DTS Engineer in 836876022

Hello,

Given that description, you're encountering a bug and we'd appreciate it if you let us know with a bug report in the Feedback Assistant.

Hello,

Given that description, you're encountering a bug and we'd appreciate it if you let us know with a bug report in the Feedback Assistant.

Hello,

After further investigation, it seems that the issue is related to the ChooseBestHostingPlayer method.

In some cases, the host returned by this method is null on one of the two clients.

Is this a known issue?

Matchmaking issue on tvOS with GKMatchmakerViewController
 
 
Q