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.

Hello,

any news about this issue?

This is still reproducible with the latest iOS 26 Simulator, on both iPhone/iPad, with and without having first logged in to Game Center... the handler isn't called.

The related console output is:

Could not create endpoint for service name: com.apple.GameOverlayUI.dashboard-service

Failed to create GameOverlayUI Dashboard Remote Proxy

Authentication (both anew and subsequent) works fine on actual devices.

Thanks,

D.

@1semeDev, @egor_afanasenko please share the IDs for any bug reports you've submitted for this issue.

@adario if you haven't already please send us a bug report as well. This helps us to prioritize work. You can also request a status update at any time.

Here’s the related Feedback ID: FB19928958

@DTS Engineer Same here, iOS 26.0 release version.

Upon initial install of the app, the authenticateHandler is not called, neither on the Simulator nor on a real device.

Thank you for mentioning @Wizfinger.

Please send us a but report as it helps us to prioritize bug fixes.

Evidently this is a widespread issue and we're keen on fixing it.

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