[macOS 26.4.x, iOS 26.4.x] Handoff broken?

Hello,

with macOS' and iOS' recent updates (26.4.x), Handoff in my app appears to have become dysfunctional, as I receive the following message in the logs:

getContinuationStreamsWithCompletionHandler(), inputStream=(null) outputStream=(null) error=Error Domain=NSPOSIXErrorDomain Code=94 "Bad message" UserInfo={NSLocalizedDescription=Could not set up internal streams}

It ONLY works:
From a Mac with 15.x to other Macs or iOS devices (on 26.4.x).

All other combinations (see below) do NOT work:
iOS (26.4.x) > iOS (26.4.x)
iOS (26.4.x) > Mac (26.4.x)
iOS (26.4.x) > Mac (15.x)
Mac (26.4.x) > iOS (26.4.x)

The Handoff prompt is shown in the Dock on Mac, in the app switcher on iOS, and in the Dock on iPadOS, but once I click/press it, I get the continuationStreams error.

Now, is it my app, or the OS?

Thank you kindly,
– Matthias

Anyone here using NSUserActivity's supportsContinuationStream = YES and seeing similar behavior?

I wouldn’t put to much stock in the Could not set up internal streams message. It’s very generic. However, the source of that error also logs more details into the system log. If you monitor the com.apple.sharing subsystem when you reproduce the error, what do you see?

See Your Friend the System Log for lots of advice on how to use the system log.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I see this:

default	15:14:10.967991+0200	sharingd	Received Handoff payload reply from "<private>" via Rapport (<private>) with requestIdentifier <private>, xid <private>
default	15:14:10.968033+0200	sharingd	Received requested Handoff payload via <private> from "<private>" (<private>) for <private> with activity payload of size <private> for requestIdentifier <private> (<private>). RTT:<private>
default	15:14:10.970822+0200	sharingd	DeviceDiscoveryUpdate: SFDeviceDiscovery (CLink), 0x1 < Info >, cflags 0x21 < AdvData >, ScanRate Invalid, ScreenOff, RSSI Change Detection, RSSI >= -80
info	15:14:10.972649+0200	sharingd	NearbyInfo sending activity level, original: 0xb encrypted:0x2
info	15:14:10.972951+0200	sharingd	[NearbyAction] Scan restart skipped when unchanged
info	15:14:10.972982+0200	sharingd	[NearbyInfo] Scan restart skipped when unchanged
info	15:14:10.973205+0200	sharingd	[Prox] Scan restart skipped when unchanged
default	15:14:11.011373+0200	sharingd	Streams are being requested from service = <private>
default	15:14:11.011430+0200	sharingd	Streams are being requested for bonjour name = <private>
info	15:14:11.011580+0200	Yoink	getContinuationStreamsWithCompletionHandler(), inputStream=(null) outputStream=(null) error=Error Domain=NSPOSIXErrorDomain Code=94 "Bad message" UserInfo={NSLocalizedDescription=Could not set up internal streams}
error	15:14:11.011466+0200	sharingd	Service does not have a bonjour name

(This is from iOS 26.4.2 to macOS v26.4.1, right after I click on my app's Handoff icon in the Dock on my Mac, so the service advertisement part works).
The last line might be the kicker, but I don't know. Restarts of all my devices didn't change a thing.

All the important values are <private> because I don't have the time right now to go through Apple Configurator, Device Management and all that jazz to set up a profile that enables private logging. I also tried in a VM, but couldn't get Handoff to work there for the life of me, so …

But maybe that last line is the tell-all anyway?
My iPhone's name is just iPhone 14 Pro, and I don't see other devices with that name on my network anywhere.

And the following is from macOS 26.4.1 to iOS 26.4.2, right after tapping the Handoff prompt for my app in the app switcher:

default	15:39:18.006109+0200	sharingd	Received Handoff payload reply from "<private>" via Rapport (<private>) with requestIdentifier <private>, xid <private>
default	15:39:18.006248+0200	sharingd	Received requested Handoff payload via <private> from "<private>" (<private>) for <private> with activity payload of size <private> for requestIdentifier <private> (<private>). RTT:<private>
default	15:39:18.008419+0200	sharingd	DeviceDiscoveryUpdate: SFDeviceDiscovery (CLink), 0x21 < Info iCloud >, cflags 0x23 < AdvData Distance >, ScanRate Invalid, ScreenOff, ScreenOffRescanInterval 900, RSSI Change Detection, RSSI >= -75
info	15:39:18.008826+0200	sharingd	NearbyInfo sending activity level, original: 0xb encrypted:0xf
debug	15:39:18.009011+0200	sharingd	Ignoring host AP check for advertising WiFiP2P bit
info	15:39:18.009027+0200	sharingd	[NearbyAction] Scan restart skipped when unchanged
info	15:39:18.009038+0200	sharingd	[NearbyInfo] Scan restart skipped when unchanged
info	15:39:18.009049+0200	sharingd	[Prox] Scan restart skipped when unchanged
debug	15:39:18.013154+0200	sharingd	SDStatusMonitor: SBSEventObserved <private>
default	15:39:18.013453+0200	useractivityd	client process changing types to scan for to <private>
info	15:39:18.013492+0200	sharingd	requested scanning for <private>
default	15:39:18.013645+0200	sharingd	Starting<private><private><private> scanning with duplicates:<private> for peers [<private>]
debug	15:39:18.019911+0200	sharingd	SystemUI unknown identifier: '<private>'/ '<private>'
default	15:39:18.019936+0200	sharingd	SystemUI changed: <private> -> <private>
default	15:39:18.019948+0200	sharingd	SDAirDropNearFieldService Buddy not visible, attempting to start
default	15:39:18.020960+0200	sharingd	SDAirDropNearFieldService: start
error	15:39:18.020983+0200	sharingd	SDAirDropNearFieldService.startNearFieldController SKIP - feature disabled
error	15:39:18.021622+0200	sharingd	SDAirDropNearFieldService: Near field Controller is not available.
default	15:39:18.031675+0200	sharingd	on lock screen: <private>
debug	15:39:18.043313+0200	sharingd	IDSContinuity didStartScanningForType: <private>
info	15:39:18.176112+0200	sharingd	BLE NearbyInfo changed SFBLEDevice ID bb004158-c262-1000-8000-001ff3fb80df, RSSI -71 (-63)t~F, Ch 39, AdvD <2a987184d3>, Nm 'BBOEgsiK', Md 'BBcYBtEC', Paired yes, Cnx no, OBC=?
info	15:39:18.176172+0200	sharingd	NearbyInfo received activity level: 0x1 after decryption
default	15:39:18.760433+0200	sharingd	Client '<private>' lacks device name entitlement
error	15:39:18.781255+0200	Yoink	Error retrieving proxy object. Returned values (proxy = <private>, deviceName = <private>, deviceID = <private>, deviceIP = <private>, error = <private>)
default	15:39:18.781265+0200	sharingd	Streams are being requested from service = <private>
default	15:39:18.781299+0200	sharingd	Streams are being requested for bonjour name = <private>
error	15:39:18.781337+0200	sharingd	Service does not have a bonjour name

The same error gets logged, if it even means anything. Lacks device name entitlement is intriguing as well - is there a new one for handoff introduced in macOS 26.4.x? I couldn't find that line in the macOS logs.

Thank you kindly,
– Matthias

[macOS 26.4.x, iOS 26.4.x] Handoff broken?
 
 
Q