In my SceneKit game I'm able to connect two players with GKMatchmakerViewController. Now I want to support the scenario where one of them disconnects and wants to reconnect. I tried to do this with this code:
nonisolated public func match(_ match: GKMatch, player: GKPlayer, didChange state: GKPlayerConnectionState) {
    Task { @MainActor in
        switch state {
        case .connected:
            break
        case .disconnected, .unknown:
            let matchRequest = GKMatchRequest()
            matchRequest.recipients = [player]
            do {
                try await GKMatchmaker.shared().addPlayers(to: match, matchRequest: matchRequest)
            } catch {
            }
        @unknown default:
            break
        }
    }
}
nonisolated public func player(_ player: GKPlayer, didAccept invite: GKInvite) {
    guard let viewController = GKMatchmakerViewController(invite: invite) else {
        return
    }
    viewController.matchmakerDelegate = self
    present(viewController)
}
But after presenting the view controller with GKMatchmakerViewController(invite:), nothing else happens. I would expect matchmakerViewController(_:didFind:) to be called, or how would I get an instance of GKMatch?
Here is the code I use to reproduce the issue, and below the reproduction steps.
- Run the attached project on an iPad and a Mac simultaneously.
 - On both devices, tap the ship to connect to GameCenter.
 - Create an automatched match by tapping the rightmost icon on both devices.
 - When the two devices are matched, on iPad close the dialog and tap on the ship to disconnect from GameCenter.
 - Wait some time until the Mac detects the disconnect and automatically sends an invitation to join again.
 - When the notification arrives on the iPad, tap it, then tap the ship to connect to GameCenter again. The iPad receives the call 
player(_:didAccept:), but nothing else, so there’s no way to get aGKMatchinstance again.