Feedback: PHBackgroundResourceUploadExtension is never scheduled when iCloud Photos is enabled
Summary
PHBackgroundResourceUploadExtension's init() and process() methods are never called by the system when iCloud Photos is enabled on the device, even though setUploadJobExtensionEnabled(true) succeeds and uploadJobExtensionEnabled returns true.
Environment
iOS 26.4 (both devices)
Xcode 26.x
Tested on iPhone 17 Pro (primary device, 10,000+ photos) and an older iPhone (development device, 200+ photos)
Same build deployed to both devices
Full photo library access (.authorized) on both devices
Steps to Reproduce
Create an app with a PHBackgroundResourceUploadExtension (ExtensionKit, extension point com.apple.photos.background-upload)
Enable iCloud Photos on the device (Settings > Photos > iCloud Photos)
In the host app, request .readWrite photo library authorization and receive .authorized
Call PHPhotoLibrary.shared().setUploadJobExtensionEnabled(true) — succeeds without error
Verify PHPhotoLibrary.shared().uploadJobExtensionEnabled == true
Wait for the system to schedule the extension (tested overnight, with device on charger + WiFi)
Expected Behavior
The system should call the extension's init() and process() methods to allow the app to create upload jobs, as documented in "Uploading asset resources in the background."
Actual Behavior
The extension's init() and process() are never called. The extension process is never launched.
Investigation via Console.app
Using Console.app to monitor system logs on both devices revealed the root cause:
When iCloud Photos is DISABLED (extension works correctly):
assetsd Checked all submitted library bundles. Result: YES
dasd SUBMITTING: com.apple.assetsd.backgroundjobservice.assetresourceuploadextensionrunner:35E7B5
dasd Submitted: ...assetresourceuploadextensionrunner at priority 5
dasd submitTaskRequestWithIdentifier: Submitted BGSystemTask com.apple.assetsd.backgroundjobservice.assetresourceuploadextensionrunner
The extension is subsequently launched and init() / process() are called as expected.
When iCloud Photos is ENABLED (extension never works):
assetsd Checked all submitted library bundles. Result: NO
No assetresourceuploadextensionrunner background task is ever submitted to dasd. The extension is never launched.
Reproducibility
100% reproducible across two different devices
Toggling iCloud Photos off (and waiting for sync to complete) immediately resolves the issue
Toggling iCloud Photos on immediately causes the issue to reappear
Reinstalling the app does not help
The same build works on the same device when iCloud Photos is disabled
Impact
This effectively makes PHBackgroundResourceUploadExtension unusable for the vast majority of users, as most iPhone users have iCloud Photos enabled. Third-party photo backup apps (Google Photos, Dropbox, OneDrive, etc.) would all be affected by this limitation.
The documentation for "Uploading asset resources in the background" does not mention any incompatibility with iCloud Photos being enabled.
Requested Resolution
Please either:
Allow PHBackgroundResourceUploadExtension to be scheduled regardless of iCloud Photos status, or
Document this limitation clearly in the API documentation if it is intentional behavior
Topic:
Media Technologies
SubTopic:
Photos & Camera
0
0
23