Data point from July 2026: this appears to work now - at least on current OS versions. Setup: iPhone companion (iOS 26.5) + SwiftUI-lifecycle watchOS app (watchOS 26.5) with WidgetKit accessory complications (no ClockKit) transferCurrentComplicationUserInfo() with a small dictionary payload (~6 keys), complication active on the watch face (isComplicationEnabled == true; the transfer budget was actually consumed: remainingComplicationUserInfoTransfers went 50 → 49 → 48 → 47) Both sides instrumented with file logging; every payload carries a monotonically increasing version, and we redundantly send the same update via updateApplicationContext as a fallback - so I can attribute exactly which channel applied each change Results - 3 consecutive sends while the watch was NOT reachable (isReachable == false on the phone at send time) and the watch app was backgrounded: sent 23:10:42.5 → didReceiveUserInfo on the watch at 23:10:57.6 (15.1 s). Ambiguous: the user happened to foreground the watch app ~150 ms b
Topic:
App & System Services
SubTopic:
Widgets & Live Activities
Tags: