Is the order of UIApplication.connectedScenes guaranteed across scene roles on iOS 27?

On iOS 27 beta 3, scene(_:willConnectTo:options:) is now called twice at launch — once for a .windowApplication scene, and once for a keyboard input scene (_UISceneSessionRoleKeyboardInputScene). On earlier iOS versions only the .windowApplication scene was delivered.

Parts of my code read connectedScenes and take the first element, e.g.:

UIApplication.shared.connectedScenes.first?.delegate as! SceneDelegate

In my testing the .windowApplication scene is always first, so .first still works — but I can't find any documentation confirming this ordering.

Questions:

  1. Is the order of connectedScenes guaranteed (is .windowApplication always first), or should it be treated as unordered?

  2. Should I instead always filter explicitly, e.g. first { $0 is UIWindowScene && $0.session.role == .windowApplication }?

  3. Is delivering the keyboard-input scene to the app's UIWindowSceneDelegate intended on iOS 27, or a beta artifact?

FB24389661 (Ordering of UIApplication.connectedScenes not documented when multiple scene roles connect (iOS 27)

There is no guarantee of connected scene ordering, and we specifically discourage the method you are using to find your application scene – we recommend that you always explicitly pass the scene that your code requires rather than searching connected scenes.

Is the order of UIApplication.connectedScenes guaranteed across scene roles on iOS 27?
 
 
Q