PHAssetResourceUploadJobChangeRequest doesn't upload iCloud-optimized photos — is this expected?

I'm implementing PHBackgroundResourceUploadExtension to back up photos and videos to our cloud storage service.

During testing, I observed that iCloud-optimized photos (where the full-resolution original is stored in iCloud, not on device) do not upload. The upload job appears to silently skip these assets.

Questions:

  1. Is this behavior intentional/documented? I couldn't find explicit mention of this limitation.
  2. If the device only has the optimized/thumbnail version locally, does the system:
- Automatically download the full-resolution asset from iCloud before uploading?
- Skip the asset entirely?
- Return an error via PHAssetResourceUploadJobChangeRequest?
  1. For a complete backup solution, should we:
- Pre-fetch full-resolution assets using PHAssetResourceManager.requestData(for:options:) before creating upload jobs?
- Use a hybrid approach (this extension for local assets + separate logic for iCloud-only assets)?

Environment: iOS 26, Xcode 18

PHAssetResourceUploadJobChangeRequest doesn't upload iCloud-optimized photos — is this expected?
 
 
Q