GKLocalPlayer.authenticateHandler not called on iOS 26 when Game Center auth overlay is shown

Hi — we’re testing our app on iOS 26 and ran into strange behavior with GKLocalPlayer.local.authenticateHandler.

GKLocalPlayer.local.authenticateHandler = { [weak self] viewController, error in
 // additional code
}

What happens:

  • When we assign authenticateHandler on iOS 26 and the user is not signed in to Game Center, the system shows a full-screen Game Center overlay asking the user to sign in.
  • If the user taps Cancel, nothing further happens — the closure is not invoked again, so we don’t receive an error or any callback. The app never learns whether the auth was cancelled or failed.
  • In previous iOS versions the closure was called (with viewController / error as appropriate) and the flow worked as expected.

What we tried:

  • Verified authenticateHandler is being set.
  • Checked GKLocalPlayer.local.isAuthenticated after the overlay dismisses — it’s unchanged.
  • Observed system logs: a com.apple.GameOverlayUI scene is created and later removed (so the auth overlay is shown by the system).
  • Confirmed the same code works on earlier iOS versions. :thinking:

Question:

Has anyone seen authenticateHandler not being invoked on iOS 26 when the Game Center auth overlay is presented? Could this be a behavioral change in iOS 26 (overlay runs in a separate system process), or a bug? Any suggested workarounds to reliably detect that the user cancelled the sign-in (for example: listening for willResignActive / didBecomeActive, watching for a system overlay, or saving/presenting the viewController manually)?

Thanks in advance for any advice — we’d appreciate pointers or suggested diagnostics ?

Answered by DTS Engineer in 855728022

Hello,

This sounds like a regression in beta iOS 26.

What version of the betas (iOS and Xcode) are you using and has this behavior changed between any other beta versions recently?

To fully understand the request flow and configuration it would be helpful to have a sample project. Please provide one if you're able.

Something in the documentation of note: "GameKit calls the [authenticateHandler] handler, possibly several times, for the following cases ..." so we'll need to check each case.

All that said, please also file a bug report as this is still in beta.

Hello,

This sounds like a regression in beta iOS 26.

What version of the betas (iOS and Xcode) are you using and has this behavior changed between any other beta versions recently?

To fully understand the request flow and configuration it would be helpful to have a sample project. Please provide one if you're able.

Something in the documentation of note: "GameKit calls the [authenticateHandler] handler, possibly several times, for the following cases ..." so we'll need to check each case.

All that said, please also file a bug report as this is still in beta.

Hello,

Thank you for your reply. Here are the details we observed: • iOS 18.6.2 (current release): authenticateHandler is invoked consistently — both when the Game Center sign-in UI appears and when the user taps Cancel. • iOS 26.0 beta 1 (first available build): Regression begins here. The Game Center sign-in UI is shown automatically, but pressing Cancel does not invoke authenticateHandler. The app receives no callback. • All subsequent iOS 26 betas (beta 2, beta 3, and the latest beta): Same behavior as beta 1. The issue has been reproducible across every iOS 26 beta so far. • Xcode versions used for testing: • Xcode 16.0 beta 1 with iOS 26.0 beta 1 • Xcode 16.0 beta 2 with iOS 26.0 beta 2 • Xcode 16.0 beta [latest] with iOS 26.0 beta [latest]

So the regression is present from the very first iOS 26 beta through the latest beta.

To help with investigation, I will provide a minimal sample project that sets GKLocalPlayer.local.authenticateHandler in viewDidAppear and logs when the handler is called. On iOS 18.6.2 (release), the Cancel action produces a callback. On iOS 26 betas it does not.

Minimal Sample Project: https://github.com/egorafanasenko/GameCenterAuthiOS26Bug

I've also filed a Feedback Assistant report with the sample project and sysdiagnose logs attached.

GKLocalPlayer.authenticateHandler not called on iOS 26 when Game Center auth overlay is shown
 
 
Q