`sdpQueryComplete:status:` not being called

I try to refresh the SDP data for a Bluetooth device that has reconnected. So when I receive connect notification I call -[IOBluetoothDevice performSDPQuery:] passing object, that should receive the query completion call. What I observe is that sdpQueryComplete:status: is not being called, buit calling performSDPQuery causes additional connect notification to be dispatched. Running this under debugger results in some weird log line: [IOBluetooth] **** This currently won't trigger SDP delegate

I run this code on Sequoia 15.5

To be more specific it seems that calling performSDPQuery and performSDPQuery:uuids: has no effect other than returning kIOReturnSuccess. Analyzing communication using PacketLogger shows no SDP communication after this method is called.

So with attempt to re-query the SDP in just any form, I tried to manually query the on-device SDP server. For that, once IOBluetoothDevice got connected, I tried to open L2CAP channel, i.e. [_device openL2CAPChannelAsync: &sdpch withPSM: kBluetoothL2CAPPSMSDP delegate: self]. This, however, fails. The console output is as follows:

-[IOBluetoothL2CAPChannel setupL2CAPChannelForDevice] No channel <IOBluetoothL2CAPChannel: 0x600001fa02c0>
-[IOBluetoothL2CAPChannel waitforChanneOpen] PSM:1 Timed out waiting to open
-[IOBluetoothDevice openL2CAPChannelSync:withPSM:withConfiguration:delegate:] PSM:1 error -536870212
-[IOBluetoothL2CAPChannel connectionComplete:status:] <IOBluetoothL2CAPChannel: 0x600001f94160 PSM:1> -536870212
channel open complete with status: e00002bc

last line just reports the code that is passed to -[l2capChannelOpenComplete:status: delegate method. Either I'm making a very stupid mistake, or it is not permitted to query the SDP for third party macOS apps.

&#96;sdpQueryComplete:status:&#96; not being called
 
 
Q