RotationCoordinator preview angle is wrong for UIRequiresFullScreen apps built with the iOS 27 SDK in Stage Manager

I'm seeing a camera preview rotation issue on iPadOS 27 that depends only on the SDK the app is linked against. I've filed it as FB25106148 and wanted to share it in case others hit the same problem.

Sample project: https://github.com/bc-lee/avfoundation-rotation-coordinator-discrete-resizing-poc

Setup

  • Portrait-only iPad app with UIRequiresFullScreen = YES
  • Front camera AVCaptureVideoPreviewLayer, rotated with AVCaptureDevice.RotationCoordinator, as in the AVCam sample:
let coordinator = AVCaptureDevice.RotationCoordinator(device: device, previewLayer: previewLayer)
// On every change of videoRotationAngleForHorizonLevelPreview:
previewLayer.connection?.videoRotationAngle = coordinator.videoRotationAngleForHorizonLevelPreview
  • iPad Pro 11-inch (4th generation), iPadOS 27.0.1, Stage Manager on, Rotation Lock off

What happens after rotating the iPad from portrait to landscape

Xcode 26.5 (iOS 26.5 SDK)Xcode 27.1 RC (iOS 27.1 SDK)
App UIStays upright for the user, letterboxedStays in portrait and lies on its side with the device (discrete resizing, TN3192)
videoRotationAngleForHorizonLevelPreview180°180°
Camera previewUprightSideways

The source code and Info.plist are the same for both builds. interfaceOrientation, effectiveGeometry, window and screen bounds, and isInterfaceOrientationLocked are also identical between the two builds, so I couldn't find a public value that tells the two presentations apart.

In the iOS 27 SDK build, applying videoRotationAngleRelative(toDeviceOrientation:) (new in iOS 27) for the scene's interface orientation, which gives 90°, instead of the horizon-level preview angle restores an upright preview.

Questions

  1. Is videoRotationAngleForHorizonLevelPreview expected to reflect the discrete resizing presentation in iPadOS 27?
  2. Until that is resolved, is using videoRotationAngleRelative(toDeviceOrientation:) with the scene's interface orientation, only when linked against the iOS 27 SDK and running on iOS 27, a reasonable workaround?

Has anyone else seen this, or found a better approach?

RotationCoordinator preview angle is wrong for UIRequiresFullScreen apps built with the iOS 27 SDK in Stage Manager
 
 
Q