[iOS 26 Beta] BGTaskScheduler.supportedResources incorrectly reports no GPU support for BGContinuedProcessingTask on capable hardware

Testing Environment:

iOS: 26.0 Beta 7

Xcode: Beta 6

Description: We are implementing the new BGContinuedProcessingTask API introduced in iOS 26. We have followed the official documentation and WWDC session guidance to configure our project.

The Background Modes (processing) and Background GPU Access capabilities have been added in Xcode.

The com.apple.developer.background-tasks.continued-processing.gpu entitlement is present and set to <true/> in the .entitlements file.

The provisioning profile details viewed within Xcode explicitly show that the "Background GPU Access" capability and the corresponding entitlement are included.

Despite this correct configuration, when running the app on supported hardware (iPhone 16 Pro), a call to BGTaskScheduler.supportedResources.contains(.gpu) consistently returns false.

This prevents us from setting request.requiredResources = .gpu. As a result, when the BGContinuedProcessingTask starts without the GPU resource flag, our internal Metal-based exporter attempts to access the GPU and is terminated by the system, throwing an IOGPUMetalError: Insufficient Permission (to submit GPU work from background).

We have performed extensive debugging, including a full reset of the provisioning profile (removing/re-adding capabilities, toggling automatic signing, cleaning build folders, and reinstalling the app), but the issue persists. This strongly suggests a bug in the iOS 26 beta where the runtime is failing to correctly validate a valid entitlement.

Additionally, we've observed inconsistent behavior across devices. On an A16-based iPad, the task submits successfully (BGTaskScheduler.submit does not throw an error), but the launch handler is never invoked by the system. On the iPhone 16 Pro, the handler is invoked, but we encounter the supportedResources issue described above. This leads us to ask for clarification on the exact hardware requirements for this feature. We hypothesize that it may be limited to devices that support Apple Intelligence (A17 Pro and newer). Could you please confirm this and provide official documentation on the device support criteria?

Steps to Reproduce:

Create a new Xcode project.

In Signing & Capabilities, add "Background Modes" (with "Background processing" checked) and "Background GPU Access".

Add a permitted identifier (e.g., "com.company.test.*") to BGTaskSchedulerPermittedIdentifiers in Info.plist.

In application(_:didFinishLaunchingWithOptions:) or a ViewController's viewDidLoad, log the result of BGTaskScheduler.shared.supportedResources.contains(.gpu).

Build and run on a physical, supported device (e.g., iPhone 16 Pro).

Expected Results: The log should indicate that BGTaskScheduler.shared.supportedResources.contains(.gpu) returns true.

Actual Results: The log shows that BGTaskScheduler.shared.supportedResources.contains(.gpu) returns false.

Answered by DTS Engineer in 854825022

Actually, the answer here is pretty simple:

Despite this correct configuration, when running the app on supported hardware (iPhone 16 Pro), a call to BGTaskScheduler.supportedResources.contains(.gpu) consistently returns false.

...which is that the iPhone 16 Pro does not support background GPU. I don't know of anywhere we formally state exactly which devices support it, but I believe it's only support on iPad's with an M3 or better (and not supported on any iPhone).

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Just a quick correction to a typo in my original report.

Incorrect code mentioned in the report: BGTaskScheduler.shared.supportedResources.contains(.gpu)

Correct code used in my project: BGTaskScheduler.supportedResources.contains(.gpu)

To be clear, my project code is using the correct static property. This typo was only in the text of my report. The underlying issue I reported still persists.

Actually, the answer here is pretty simple:

Despite this correct configuration, when running the app on supported hardware (iPhone 16 Pro), a call to BGTaskScheduler.supportedResources.contains(.gpu) consistently returns false.

...which is that the iPhone 16 Pro does not support background GPU. I don't know of anywhere we formally state exactly which devices support it, but I believe it's only support on iPad's with an M3 or better (and not supported on any iPhone).

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

@DTS Engineer Hi Kevin,

Thank you so much for the definitive and incredibly helpful answer. This clarification has saved our team a huge amount of debugging time, and we truly appreciate you sharing this specific information.

That makes perfect sense and explains the behavior we were seeing. The main source of our confusion was the documentation, which lists both iOS 26.0+ and iPadOS 26.0+, leading us to assume iPhone support. Your clarification that it's currently limited to iPads with an M3 chip or better is exactly the information we were missing.

Just one follow-up question for our team's planning purposes. While we understand this may not be formally documented yet, is there an official device compatibility list or a specific documentation page we should monitor for future updates on these hardware requirements? Having a definitive source to reference would be a great help for us as we define our feature set across devices.

Thanks again for your help!

[iOS 26 Beta] BGTaskScheduler.supportedResources incorrectly reports no GPU support for BGContinuedProcessingTask on capable hardware
 
 
Q