Abnormal Background Delivery Frequency of HealthKit on Specific watchOS Devices

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

Thanks for providing such a detailed report. Just to be sure that the testing environment on different devices is exactly the same:

  • Does your app have an complication on the current watch face? In watchOS, you can expect that your app receives four background updates per hour if your app has an active complication, as mentioned here. The device's battery level is another important factor as well, so be sure your device has 80+% battery level when doing your tests.

  • The behavior I described is on an app. It seems though that you are using HKObserverQuery + enableBackgroundDelivery in an "App Extension", which has a quite different life cycle. Would you mind to share details about what extension you are working on, how you use HKObserverQuery + enableBackgroundDelivery in your app extension, and if the issue happens in an app on the same device as well.

Other than that, given that the issue only occurs on a certain device, I think it's reasonable to start with filing a feedback report with a sysdiagnose from the device that demonstrates the issue – If you do so, please share your report ID here for folks to track.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

Abnormal Background Delivery Frequency of HealthKit on Specific watchOS Devices
 
 
Q