1/ Issue Summary
In our application, we use HKObserverQuery together with:HKHealthStore.enableBackgroundDelivery(for:frequency: .immediate) to enable HealthKit Background Delivery, allowing the system to wake our App Extension in the background to process health data updates.
Under the same app build, identical HealthKit permission configuration, and the same watchOS version, we have observed significant differences in background delivery frequency across different devices.
Specifically, on certain devices (e.g. Apple Watch Series 10, watchOS 26.2.1), the background delivery frequency is significantly reduced, behaving as if it is capped at approximately once per hour. On other control devices, under the same configuration, background delivery is triggered much more frequently and consistently, at approximately every 8–16 minutes.
This behavior is consistently reproducible on the affected devices.
**We would like to understand whether there are any officially recommended implementation patterns, best practices, or device-/system-level considerations when using HKObserverQuery and Background Delivery, in order to achieve more consistent and predictable background update behavior across different devices running the same system version. **
2/ Detailed Device Comparison
We conducted internal comparison testing across multiple devices with the following results:
Device A (Affected / Abnormal)
- Model: Apple Watch Series 10 (46mm)
- OS: watchOS 26.2.1
- Serial (partial): C*HY
- Background Delivery Frequency: ~ once every 60 minutes (significantly lower than expected)
Device B (Normal)
- Model: Apple Watch Series 10 (42mm)
- OS: watchOS 26.2.1
- Serial (partial): G*4R
- Background Delivery Frequency: ~ every 8–16 minutes
Device C (Normal)
- Model: Apple Watch Series 8 (41mm)
- OS: watchOS 26.3
- Serial (partial): C*J6
- Background Delivery Frequency: ~ every 8–16 minutes
Device D (Normal)
- Model: Apple Watch Series 5 (41mm)
- OS: watchOS 10.6.1
- Serial (partial): G*TQ
- Background Delivery Frequency: ~ every 8–16 minutes
All devices share the following conditions:
- HealthKit permissions: Full read/write permissions granted
- Background App Refresh: Enabled
- System state: Low Power Mode, Do Not Disturb, and all Focus modes disabled
- App build: Identical app build installed on all devices
- HealthKit configuration: Same data types and same frequency parameter used in enableBackgroundDelivery
- Implementation: Identical HKObserverQuery implementation logic
3/ Abnormal Behavior Observed
On the affected device(s), we observe that:
- HealthKit background delivery appears to be heavily coalesced or throttled
- The system rarely attempts to wake the App Extension
- Behavior is clearly inconsistent with other devices using the same configuration
- The behavior does not match our expectations for HealthKit Background Delivery with .immediate frequency
4/ Troubleshooting Already Performed
We have already attempted the following on the affected device(s):
- Restarted both Apple Watch and paired iPhone
- Re-paired the Apple Watch
- Uninstalled and reinstalled the app
- Revoked and re-granted HealthKit permissions
- Confirmed that Low Power Mode, Do Not Disturb, and Focus modes are all disabled
The issue remains consistently reproducible.
5/ Assistance Requested
We would appreciate guidance on:
- Whether there are any officially recommended implementation patterns, tuning options, or best practices for using HKObserverQuery and HealthKit Background Delivery
- Whether there are any known device-level or system-level factors that may cause significantly different background delivery behavior on different devices running the same watchOS version
- How to best achieve consistent and predictable background update delivery behavior across devices for apps that rely on this mechanism
6/ Additional Information
- We can provide sysdiagnose logs from both affected and unaffected devices for comparison
- We can also provide a minimal reproducible sample project if needed