App crashes after requesting PhotoLibrary limited access

My visionOS requires access to users' personal photos. The trigger mechanism is: when user firstly opens a FooView, a task attached to that FooView and calling let status = PHPhotoLibrary.authorizationStatus(for: .readWrite), if the status is .notDetermined, then calling PHPhotoLibrary.requestAuthorization(for: .readWrite, handler: authCompletionHandler) to let visionOS pop out a window to request Photo access.

However, the app crashes every time when user selects Limited Access and the system try to pop out a photo library picker. And btw, I have set Prevent limited photos access alert to Yes, but it shouldn't affect the behavior here I guess.

There was a debugger message here:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Presentations are not permitted within volumetric window scenes.'

However, the window this view belongs to is a .plain style window (though there were 3D object appearing in the other view of same windowgroup)

This is my code snippet if this helps: checkAndUpdatePhotoAuthorization is just a wrapper of PHPhotoLibrary.authorizationStatus(for: .readWrite)

private func checkAndUpdatePhotoAuthorization() -> PHAuthorizationStatus {
        let currentStatus = PHPhotoLibrary.authorizationStatus(for: .readWrite)
        switch currentStatus {
        case .authorized:
            print("Photo library access authorized.")
            isPhotoGalleryAuthorized = true
            isPhotoGalleryLimited = false
            isPhotoGalleryAccessRestricted = false
            isPhotoGalleryDetermined = true
        case .limited:
            print("Photo library access limited.")
            isPhotoGalleryLimited = true
            isPhotoGalleryAuthorized = false
            isPhotoGalleryAccessRestricted = false
            isPhotoGalleryDetermined = true
        case .notDetermined:
            isPhotoGalleryDetermined = false
            print("Photo library access not determined.")
        case .denied:
            print("Photo library access denied.")
            isPhotoGalleryAuthorized = false
            isPhotoGalleryLimited = false
            isPhotoGalleryAccessRestricted = false
            showSettingsAlert = true
            isPhotoGalleryDetermined = true
            
        case .restricted:
            print("Photo library access restricted.")
            isPhotoGalleryAuthorized = false
            isPhotoGalleryLimited = false
            isPhotoGalleryAccessRestricted = true
            showPhotoAuthExplainationAlert = true
            isPhotoGalleryDetermined = true
            
        @unknown default:
            print("Photo library Unknown authorization status.")
            isPhotoGalleryAuthorized = false
            isPhotoGalleryLimited = false
            isPhotoGalleryAccessRestricted = false
            isPhotoGalleryDetermined = true
        }
        
        return currentStatus
    }

And then FooView attaches task to fire up checkAndUpdatePhotoAuthorization()

var body: some View {
    EmptyView()
}
.task {
        try? await Task.sleep(for: .seconds(1.0))
        let status = self.checkAndUpdatePhotoAuthorization()
        if status == .notDetermined {
                DispatchQueue.main.async {
                        PHPhotoLibrary.requestAuthorization(for: .readWrite, handler: authCompletionHandler)
                    }
        }

Another thing worth to mention is that SOMETIMES it won't crash when running on a debug build. But it crashes when it comes to TF.

Any other idea? Big thanks in advance

XCode version: 16.2 beta 3 VisionOS version: 2.2

App crashes after requesting PhotoLibrary limited access
 
 
Q