ThreadNetwork

RSS for tag

Helps clients to share Thread credentials in a safe and secure manner, and automatically chooses a designated network for each home.

Posts under ThreadNetwork tag

24 Posts

Post

Replies

Boosts

Views

Activity

HomePod OS 27
Hello everyone, I am trying to get my HomePod minis on the OS 27. But it is only showing that I have a public beta of 26.5. Does anyone know how to get OS 27 to show up as an option under Betas in Home App? I am a paid member of the developer program. Any information would be great!
0
0
139
5d
Thread topology data: no API path for parent-child relationships
I'm building a HomeKit app that discovers Thread devices and visualizes the mesh topology. I can detect device roles (Router vs End Device via characteristic 0x0703) and identify Border Routers (via _meshcop._udp), but I cannot determine which Router is the parent of a given End Device. Any Thread device can act as a Router (a Nanoleaf bulb, an Eve plug, not just HomePods), and End Devices attach to these Routers as children. That parent-child relationship is what I'm trying to map, but there's no RLOC16, neighbor table, or parent identifier exposed through any available API. I've tested every path I can find. Here's what I've tried on a network with 44 Thread devices and 6 Border Routers: What works (partially) HAP Thread Management Service (0x0701) gives me the device role from characteristic 0x0703, the OpenThread version from 0x0706, and node capabilities from 0x0702. That's the complete set of characteristics on that service. None of them contain RLOC16, parent Router, or neighbor data. This service also only exists on HAP-native Thread devices. My 20 Matter-over-Thread devices (Aqara, Eve Door, SmartWings, Onvis S4) don't have it at all. MeshCoP Bonjour (_meshcop._udp) identifies Border Routers and the network name/Extended PAN ID. No topology data about other mesh nodes. What doesn't work ThreadNetwork framework (THClient) - retrieveAllCredentials() returns error Code 3 because the app can't access credentials stored by Apple Home. Even if it worked, THCredentials only contains network config (name, PAN ID, channel), not topology. Direct CoAP queries - Border Routers don't route traffic from WiFi to Thread management ports. Mesh-local addresses aren't reachable. No Thread NWInterface in Network.framework. Network.framework - No visibility into the Thread mesh from the WiFi side. The only remaining path I can see (but it's not practical) Matter cluster 0x0035 (Thread Network Diagnostics) appears to have exactly what I need: RLOC16, NeighborTable with isChild boolean, RouteTable. I haven't implemented this because it requires commissioning each device individually onto my app's own Matter fabric via Multi-Admin. That's 21 separate user-initiated pairing actions on my network. I can't ask end users to do that. The core issue Every Thread Router (whether it's a HomePod acting as a Border Router or a Nanoleaf bulb acting as a mesh Router) knows its own children and neighbors. The Border Routers also maintain route tables covering the mesh backbone. This data exists on the user's own devices but none of it is exposed to third-party apps. Even something minimal would help. HMAccessory already exposes matterNodeID as a cross-protocol identifier. Exposing RLOC16 the same way would be enough, since parent-child relationships are encoded in the address itself (ParentRLOC = ChildRLOC & 0xFC00). Has anyone found another approach I'm missing? Thanks in advance for any pointers.
1
0
414
Feb ’26
Matter commissioning issue with Matter support extension
My team has developed an app with a Matter commissioner feature (for own ecosystem) using the Matter framework on the MatterSupport extension. Recently, we've noticed that commissioning Matter devices with the MatterSupport extension has become very unstable. Occasionally, the HomeUIService stops the flow after commissioning to the first fabric successfully, displaying the error: "Failed to perform Matter device setup: Error Domain=HMErrorDomain Code=2." (normally, it should send open commissioning window to the device and then add the device to the 2nd fabric). The issue is never seen before until recently few weeks and there is no code changes in the app. We are suspected that there is some data that fail to download from the icloud or apple account that cause this problem. For evaluation, we tried removing the HomeSupport extension and run the Matter framework directly in developer mode, this issue disappears, and commissioning works without any problems.
19
0
1.2k
Jan ’26
MatterSupport extension MatterAddDeviceExtensionRequestHandler Thread device failure
I am using the MatterSupport extension to commission devices for my own ecosystem. I use the extension to do the initial connection to the device (BLE, PASE, bring device onto wifi/thread) and then use the method commissionDevice(in home: MatterAddDeviceRequest.Home?, onboardingPayload: String, commissioningID: UUID) in MatterAddDeviceExtensionRequestHandler to send a request to my own hub on the local network where it then connects to the device via wifi/thread and fully commissions the device. This flow is working correctly for wifi enabled devices, however it fails for thread devices. For some context, I am using my own border router (and have already added the router's credentials to the phone using THClient's storeCredentials). Here are some device-specific results: ESP32 (WIFI): successful commission ESP32 (THREAD): failure Matter Certified ONVIS smart plug (THREAD): failure The ESP32's are running espressif matter examples. Example border router is a running OTBR docker container I believe that the entire PASE session is established and the device gets onto the thread network, but the process seems to stall after that. I have verified that selectThreadNetwork(...) and validateDeviceCredential(...) get called but the commissioning process seems to stall before it can get to commissionDevice(...) I am limited to 7k characters, but I'll try to include as many relevant log lines as I can near the error if anyone has any ideas. I've already created a bug report with ID: FB18985348 which includes the full logs from the esp32 and a sysdiagnose from an iPhone 12 Pro (iOS 18.5) using the following log profiles: Home app/HomeKit HomeThread ThreadNetwork When commissioning directly from my hub, the entire commissioning completes successfully 100% of the time. This failure only happens when I use MatterSupport to initiate commissioning for Matter over Thread devices specifically. Very condensed homed log overview for uncertified ESP32 thread example Next: 'SecurePairing' -> 'ReadCommissioningInfo' Step: 'ReadCommissioningInfo' Sending read requests for commissioning information NetworkCommissioning Features: has Thread. endpointid = 0 <MTRDeviceController_Concrete: ..., uuid: F9BB9F53-BF73-4B82-B00B-045E7709530E...> completed for nodeID 0x0000000055d193ec with status: Success ✔ 'ReadCommissioningInfo' Next: 'ReadCommissioningInfo' -> 'ArmFailSafe' Step: 'ArmFailSafe' ✔ 'ArmFailSafe' Next: 'ArmFailSafe' -> 'ConfigRegulatory' Step: 'ConfigRegulatory' ✔ 'ConfigRegulatory' Next: 'ConfigRegulatory' -> 'ConfigureTCAcknowledgments' Step: 'ConfigureTCAcknowledgments' ✔ 'ConfigureTCAcknowledgments' Next: 'ConfigureTCAcknowledgments' -> 'SendPAICertificateRequest' Step: 'SendPAICertificateRequest' ✔ 'SendPAICertificateRequest' Next: 'SendPAICertificateRequest' -> 'SendDACCertificateRequest' Step: 'SendDACCertificateRequest' ✔ 'SendDACCertificateRequest' Next: 'SendDACCertificateRequest' -> 'SendAttestationRequest' Step: 'SendAttestationRequest' ✔ 'SendAttestationRequest' Next: 'SendAttestationRequest' -> 'AttestationVerification' Step: 'AttestationVerification' Error on commissioning step 'AttestationVerification': Internal error Next: 'AttestationVerification' -> 'AttestationRevocationCheck' Step: 'AttestationRevocationCheck' (with error) Device attestation error: Integrity check failed. Continue commissioning (ignore attestation failure: YES) ✔ 'AttestationRevocationCheck' Next: 'AttestationRevocationCheck' -> 'SendOpCertSigningRequest' Step: 'SendOpCertSigningRequest' ✔ 'SendOpCertSigningRequest' Next: 'SendOpCertSigningRequest' -> 'ValidateCSR' Step: 'ValidateCSR' ✔ 'ValidateCSR' Next: 'ValidateCSR' -> 'GenerateNOCChain' Step: 'GenerateNOCChain' ✔ 'GenerateNOCChain' Step: 'SendTrustedRootCert' ✔ 'SendTrustedRootCert' Next: 'SendTrustedRootCert' -> 'SendNOC' Step: 'SendNOC' ✔ 'SendNOC' Next: 'SendNOC' -> 'ThreadNetworkSetup' Step: 'ThreadNetworkSetup' ✔ 'ThreadNetworkSetup' Next: 'ThreadNetworkSetup' -> 'FailsafeBeforeThreadEnable' Step: 'FailsafeBeforeThreadEnable' ✔ 'FailsafeBeforeThreadEnable' Next: 'FailsafeBeforeThreadEnable' -> 'ThreadNetworkEnable' Step: 'ThreadNetworkEnable' ✔ 'ThreadNetworkEnable' Next: 'ThreadNetworkEnable' -> 'kEvictPreviousCaseSessions' Step: 'kEvictPreviousCaseSessions' ✔ 'kEvictPreviousCaseSessions' Next: 'kEvictPreviousCaseSessions' -> 'kFindOperationalForStayActive' Step: 'kFindOperationalForStayActive' Error: Timeout Next: 'kFindOperationalForStayActive' -> 'Cleanup' Step: 'Cleanup' (with timeout error) ✔ 'Cleanup' Commissioning complete for node ID 0x0000000055D193EC with timeout error
2
1
463
Dec ’25
Thread Network API not working
I'm trying to use ThreadNetwork API to manage TheradNetworks on device (following this documentation: https://developer.apple.com/documentation/threadnetwork/), but while some functions on THClient work (such as getPreferedNetwork), most don't (storeCredentials, retrieveAllCredentials). When calling these functions I get the following warning/error: Client: -[THClient getConnectionEntitlementValidity]_block_invoke - Error: -[THClient storeCredentialsForBorderAgent:activeOperationalDataSet:completion:]_block_invoke:701: - Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service with pid 414 named com.apple.ThreadNetwork.xpc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service with pid 414 named com.apple.ThreadNetwork.xpc was invalidated from this process.} Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service with pid 414 named com.apple.ThreadNetwork.xpc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service with pid 414 named com.apple.ThreadNetwork.xpc was invalidated from this process.} Failed to store Thread credentials: Couldn’t communicate with a helper application. STEPS TO REPRODUCE Create new project Add Thread Network capability via Xcode UI (com.apple.developer.networking.manage-thread-network-credentials) Trigger storeCredentials let extendedMacData = "9483C451DC3E".hexadecimal let tlvHex = "0e080000000000010000000300001035060004001fffe002083c66f0dc9ef53f1c0708fdb360c72874da9905104094dce45388fd3d3426e992cbf0697b030d474c2d5332302d6e65773030310102250b04106c9f919a4da9b213764fc83f849381080c0402a0f7f8".hexadecimal // Initialize the THClient let thClient = THClient() // Store the credentials await thClient.storeCredentials(forBorderAgent: extendedMacData!, activeOperationalDataSet: tlvHex!) { error in if let error = error { print(error) print("Failed to store Thread credentials: \(error.localizedDescription)") } else { print("Successfully stored Thread credentials") } } NOTES: I tried with first calling getPreferedNetwork to initiate network permission dialog Tried adding meshcop to bojur services Tried with different release and debug build configurations
7
0
597
Dec ’25
Matter request extension no long working for Thread devices
My app has been working fine until just recently, now it can not add Matter devices over Thread (Wifi commissioning still works). I didn't change anything on my side, so not sure if an update maybe changed things? In any case, reading through my logs (and i have the matter/thread debug profiles installed). it seems like the device is added to the thread network fine, and it looks to me like the phone is successfully commissioning the device to the Apple setup fabric, but then it seems to choke on this line and i don't think the device is actually added to the keychain/matter db, so it fails later on . error 12:18:03.369036-0700 homed [2610726604/1195614123(679130348)] failed to find metric hmmtrAccessoryMetricNameCommissioningAccessory to complete I can confirm the device does join my thread border router as its pingable, and it does not seem to be in setup mode anymore (light stops flashing), so i assume it thinks its commissioned. The device i'm pairing is a Onvis (matter certified) outlet to an espressif build of a OTBR. My phone is running 18.4.1 if that matters (no pun intended) . I have also cleared out existing Matter pairings from the phone, as well ensured the device was factory reset before every try. Here is a snippet of the log towards the end where is looks like pairing works, but then errors out. I would post more but my post has a 7k character limit. default 12:18:02.836555-0700 homed Success status report received. Session was established default 12:18:02.836734-0700 homed SecureSession[0x9bb100f00, LSID:64711]: State change 'kEstablishing' --> 'kActive' default 12:18:02.837438-0700 homed Successfully finished commissioning step 'kFindOperationalForStayActive' default 12:18:02.837467-0700 homed Commissioning stage next step: 'kFindOperationalForStayActive' -> 'ICDSendStayActive' default 12:18:02.837500-0700 homed Performing next commissioning step 'ICDSendStayActive' default 12:18:02.837574-0700 homed Skipping kICDSendStayActive default 12:18:02.837627-0700 homed Successfully finished commissioning step 'ICDSendStayActive' default 12:18:02.837650-0700 homed Commissioning stage next step: 'ICDSendStayActive' -> 'kFindOperationalForCommissioningComplete' default 12:18:02.837670-0700 homed Performing next commissioning step 'kFindOperationalForCommissioningComplete' default 12:18:02.838036-0700 homed Found an existing secure session to [2:000000009B9C86CC]! default 12:18:02.838149-0700 homed Successfully finished commissioning step 'kFindOperationalForCommissioningComplete' default 12:18:02.838697-0700 homed Commissioning stage next step: 'kFindOperationalForCommissioningComplete' -> 'SendComplete' default 12:18:02.838893-0700 homed Performing next commissioning step 'SendComplete' default 12:18:02.839092-0700 homed <<< [E:35494i S:64711 M:193726318] (S) Msg TX from 0000000086BCA241 to 2:000000009B9C86CC [47A0] [UDP:[fd01:11b8:de1c:1:968a:c465:6fe8:e12a]:5540] --- Type 0001:08 (IM:InvokeCommandRequest) (B:59) default 12:18:02.839133-0700 homed ??1 [E:35494i S:64711 M:193726318] (S) Msg Retransmission to 2:000000009B9C86CC scheduled for 2910ms from now [State:Active II:800 AI:800 AT:4000] default 12:18:02.839257-0700 homed <<< [E:35493i S:0 M:19014618 (Ack:7538941)] (U) Msg TX from 3251BD376C43B658 to 0:0000000000000000 [0000] [UDP:[fd01:11b8:de1c:1:968a:c465:6fe8:e12a]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:26) default 12:18:03.356373-0700 homed >>> [E:35494i S:64711 M:174417481 (Ack:193726318)] (S) Msg RX from 2:000000009B9C86CC [47A0] to 0000000086BCA241 --- Type 0001:09 (IM:InvokeCommandResponse) (B:70) default 12:18:03.356559-0700 homed Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 default 12:18:03.356584-0700 homed Received CommissioningComplete response, errorCode=0 default 12:18:03.356622-0700 homed Successfully finished commissioning step 'SendComplete' default 12:18:03.356648-0700 homed Commissioning stage next step: 'SendComplete' -> 'Cleanup' default 12:18:03.356746-0700 homed Performing next commissioning step 'Cleanup' default 12:18:03.356803-0700 homed Successfully finished commissioning step 'Cleanup' default 12:18:03.356916-0700 homed Closing all BLE connections default 12:18:03.357084-0700 homed Auto-closing end point's BLE connection. default 12:18:03.358146-0700 homed SecureSession[0x9bb1003c0, LSID:64710]: State change 'kActive' --> 'kPendingEviction' default 12:18:03.358652-0700 homed Commissioning complete for node ID 0x000000009B9C86CC: success default 12:18:03.358678-0700 homed <MTRDeviceController_Concrete: 0x9b8e33100, uuid: 3F6C2281-D873-4D82-BE3E-722446EA66E7, suspended: NO> DeviceControllerDelegate Commissioning complete. NodeId 0x000000009b9c86cc Status src/controller/CHIPDeviceController.cpp:2932: Success ... default 12:18:03.367999-0700 homed <MTRDeviceController_Concrete: 0x9b8e33100, uuid: 3F6C2281-D873-4D82-BE3E-722446EA66E7, suspended: NO> 1 delegates called for -[MTRDeviceController controller:commissioningComplete:nodeID:metrics:] error 12:18:03.369036-0700 homed [2610726604/1195614123(679130348)] failed to find metric hmmtrAccessoryMetricNameCommissioningAccessory to complete error 12:18:03.426636-0700 HomeUIService Unexpected accessory setup progress CASE Session Sanity Check Passed default 12:18:03.426850-0700 homed Could not find home with valid fabric ID corresponding to fabric UUID: FB19AA02-5E34-40C5-BB9D-B1B1AF51E08B ... error 12:18:03.460841-0700 homed [188914BD-5163-425C-9E59-CAE9BFA1A288] Could not find system commissioner pairing for newly staged server with identifier f1:64:16:3f:79:b8 in all pairings: ( .. default 12:18:03.460906-0700 homed Answering incoming message HMASC.m.confirmDeviceCredential (186EE57F-330B-435F-A949-0E4C5D6954AB) from client 'HomeUIService' that expects a response with error Error Domain=HMErrorDomain Code=2 "(null)" error 12:18:03.461167-0700 HomeUIService [BD890E19] Failed to stage CHIP accessory pairing in steps: Error Domain=HMErrorDomain Code=2 "(null)" error 12:18:03.462121-0700 HomeUIService -[HSSetupStateMachineCHIPPartnerConfiguration stageCHIPAccessory]_block_invoke Failed to stage CHIP accessory: Error Domain=HMErrorDomain Code=2 "(null)" default 12:18:03.462172-0700 HomeUIService -[HSSetupStateMachineConfiguration setPairingError:] *** Setting pairingError *** = Error Domain=HMErrorDomain Code=2 "(null)"
3
0
309
May ’25
Matter Generic Switch not resuming subscription on reboot
I'm developing a Matter-over-thread generic switch with 2 generic switch endpoints. This is configured as an Intermittently Connected Device with Long Idle Time. I have an Apple TV serving as the thread border router. I'm able to commission the device successfully in the Home app and assign actions to each of the buttons however when the device is rebooted the subscription doesn't appear to resume successfully and the buttons no longer work. I've tested this on various SOC's with their respective SDKs including ESP32-C6, nrf52840 and EFR32MG24 and the behaviour was consistent across all of them. It was working originally when I first started out on the ESP32-C6, then the issue popped up first when I was testing the nrf52840. In that SDK I set persistent subscriptions explicitly and it seemed to resolve the issue until it popped up again when I found that unplugging and restarting the Apple TV completely which appeared to fix the issue with subscriptions not resuming. Recently I've added a Home Pod Mini Gen 2 to the matter fabric so there are now two TBR on the network and restarting both the Apple TV and the HomePod doesn't appear to resolve the issue anymore and the subscriptions are not resuming across all three SOC's on device reboot I'm wondering if there might be something preventing the subscriptions from resuming?
2
0
236
May ’25
How to test application using Thread networking on MacOS?
I would like to test running some Thread Networking code on my MacOS machine: import ThreadNetwork let client = THClient() let bIsPreferredAvailable = await client.isPreferredAvailable() but I get some errors when trying to create an instance of the THClient class: Client: -[THClient connectToXPCService]_block_invoke - CTCS XPC Client is interrupted. Client: -[THClient getConnectionEntitlementValidity]_block_invoke - clientProxyWithErrorHandler Error: Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.ThreadNetwork.xpc" UserInfo={NSDebugDescription=connection to service named com.apple.ThreadNetwork.xpc} Client: -[THClient init] - XPC Client Init Failed Invalidating XPC connection. Client: -[THClient getConnectionEntitlementValidity]_block_invoke - clientProxyWithErrorHandler Error: Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.ThreadNetwork.xpc" UserInfo={NSDebugDescription=connection to service named com.apple.ThreadNetwork.xpc} How can I get the code to run?
0
0
290
Mar ’25
Using activeOperationalDataSet with Matter chip-tool
I am trying to commission an ESP32-H2 Matter device using the chip-tool. It's running the Light Switch sample. I can commissioning it using the iOS Home App, so I know the code on it's working okay. I would like to understand more about the Fabric process, so I'd like to use the Home Pod powered Thread network rather than setting up an instance of Open Thread Border Router. I have created a simple iOS app and can fetch the activeOperationalDataSet from the Preferred network using func obtainPreferredNetworkCredentials() async -> (Void) { let client = THClient() let bIsPreferredAvailable = await client.isPreferredAvailable() if bIsPreferredAvailable == true { var credential: THCredentials? do { credential = try await client.preferredCredentials() if let dataset = credential?.activeOperationalDataSet { print(dataset.hexDescription) } } catch { print("Failed to get the credentials") } } } The hexDescription comes from this extension extension Data { var hexDescription: String { return reduce("") {$0 + String(format: "%02x", $1)} } } I am decoding the Data and displaying it as a hex string. It looks something like this: 0e080000000000000000000300001935060004001fffc002089f651677026f48070708fd9f65167702000ee90914b5d1097de9bb0818dc94690c0402a0f7f8 However, when I attempt to commission the device, it fails during ThreadSetup. Googling the issue says most likely the Operational Dataset is wrong in some way. Before I spend too much time on this, I want to make sure I'm doing the right thing in terms of getting the Operational Dataset to use with the chip-tool. Any help is appreciated!
1
0
382
Mar ’25
How to use notification to notify shared container changes in cloudkit?
I would like to create a private container and share a zone between two users with different iCloud accounts. All changes made by one would be notified with push notifications to the other user's db. Both could change the same information. Exactly as it is done in this apple project. https://developer.apple.com/documentation/cloudkit/shared_records/sharing_cloudkit_data_with_other_icloud_users However, I have been reading this code for days and I am stuck on it, it is extremely complicated for my level. I would really like to know if there is any simple project that uses the same idea to build this logic with swiftui.
3
0
1.3k
Oct ’24
How to use ThreadNetwork.framework Api
Hello, I would like to ask if I can use ThreadNetwork.framework. My project has been configured with com.apple.developer. networking. manage thread network credentials according to the documentation, but the relevant API still cannot be used. Currently, there is an error message: Client: - [THClient getConnectionEntitlementValidity] block invoice - Error: (null) Client: [THClient retrieveAllCredits:] _block_invoke - Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service with pid 555 named com. apple. ThreadNetwork. xpc was validated from this process." UserInfo={NSDebugDescription=The connection to service with pid 555 named com. apple. ThreadNetwork. xpc was validated from this process.} May I ask if I can use the relevant API
0
1
561
Apr ’24
OS 17及以上版本中VPN连接后特定流量不通过本地网络的问题求解
尊敬的开发者社区成员, 我最近在开发iOS平台上的VPN应用程序时遇到了一个问题,希望能在这里寻求一些帮助和建议。在我的应用程序中,我注意到在iOS 17及以上版本中,连接到VPN后,特定流量似乎不再通过本地网络发送,而是直接通过VPN连接发送。 为了解决这个问题,我已经尝试了以下几种方法: 确保VPN配置正确,并与VPN服务提供商确认配置是否符合预期。 在iOS设备上检查系统设置,确保VPN配置被正确应用。 使用网络抓包工具分析网络流量,观察流量的源和目的地址,以确定是否通过VPN连接发送数据。 然而,尽管我已经采取了这些步骤,问题仍然存在。我怀疑这可能是iOS 17及以上版本中网络堆栈实现的变化所导致的。因此,我正在寻找更多的调查和解决方案,以确定问题的根本原因,并找到一个可行的解决方案。 如果您在iOS 17及以上版本中遇到了类似的问题,或者您对iOS网络连接行为有深入的了解,请不要犹豫,与我分享您的经验和建议。我非常感谢您的帮助和支持。 谢谢!
0
0
1.2k
Feb ’24
How do I use a Thread Network API in IOS
Hi there I tried to use a Thread Network in my App. Actually I added ThreadNetwork in frameworks folder and I tried to initialize THClient pointer. THClient* Thread = [[THClient alloc] init]; but error is occur as bellowing "[thclient] Client: -[THClient connectToXPCService]_block_invoke - CTCS XPC Client is invalidated." May I get an advice?? Thanks
26
1
5.8k
Nov ’23
Facing issue in using ThreadNetwork API in iOS
Hi, I am trying to use ThreadNetwork APIs in my app. When I try to invoke any thread API I am getting the following error: "[thclient] Client: -[THClient connectToXPCService]_block_invoke - CTCS XPC Client is invalidated." Also the process to add thread entitlement to the app is not clear. I have added the ThreadNetwork Mobile Profile on my device but I still get the above error. Could I get some help with this? Thanks.
2
1
990
Nov ’23
Crash on _dispatch_semaphore_wait_slow
Our App is starting to crash (SIGABRT) with the following semaphore failure: _dispatch_semaphore_wait_slow + 132 that´s the stack trace of the affected threads: CrashReporter Key: 682241501eca714a73bcfc32a9fc72f3697580c2 Hardware Model: iPad8,3 Process: TapestryPRO [590] Path: /private/var/containers/Bundle/Application/19755567-CB9E-49C2-9506-C3087BB86227/TapestryPRO.app/TapestryPRO Identifier: com.t-mobile.Tapestry-PRO Version: 1.900.8 (1.900.8) Code Type: ARM-64 (Native) Role: Foreground Parent Process: launchd [1] Coalition: com.t-mobile.Tapestry-PRO [529] Date/Time: 2023-09-12 14:18:50.2918 -0400 Launch Time: 2023-09-12 14:17:34.2497 -0400 OS Version: iPhone OS 16.6.1 (20G81) Release Type: User Baseband Version: 5.03.01 Report Version: 104 Exception Type: EXC_CRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Termination Reason: FRONTBOARD 2343432205 <RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-update watchdog transgression: application<com.t-mobile.Tapestry-PRO>:590 exhausted real (wall clock) time allowance of 10.00 seconds ProcessVisibility: Foreground ProcessState: Running WatchdogEvent: scene-update WatchdogVisibility: Foreground WatchdogCPUStatistics: ( "Elapsed total CPU time (seconds): 40.950 (user 40.950, system 0.000), 47% CPU", "Elapsed application CPU time (seconds): 0.300, 0% CPU" ) reportType:CrashLog maxTerminationResistance:Interactive> Triggered by Thread: 0 Kernel Triage: VM - (arg = 0x0) pmap_enter retried due to resource shortage Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libsystem_kernel.dylib 0x1ebc52c20 semaphore_wait_trap + 8 1 libdispatch.dylib 0x1b4a64448 _dispatch_sema4_wait + 28 2 libdispatch.dylib 0x1b4a64afc _dispatch_semaphore_wait_slow + 132 3 TapestryPRO 0x104fc70a8 -[TapestryServices serviceCallUsingRequest:] + 632 4 TapestryPRO 0x104fc6e18 -[TapestryServices serviceCallUsingMutableRequest:] + 232 5 TapestryPRO 0x104fc6c6c -[TapestryServices serviceCallUsingMutableRequestReturnData:] + 180 6 TapestryPRO 0x104fdf370 -[TapestrySSOAccess getStoreId:error:] + 948 7 TapestryPRO 0x104f2efcc -[TapestrySSO getStoreId:] + 416 8 TapestryPRO 0x104f34794 -[LoginViewController getStoreId] + 132 9 TapestryPRO 0x104f33fa4 __39-[LoginViewController handleSSOHandoff]_block_invoke_3 + 116 10 libdispatch.dylib 0x1b4a62320 _dispatch_call_block_and_release + 32 11 libdispatch.dylib 0x1b4a63eac _dispatch_client_callout + 20 12 libdispatch.dylib 0x1b4a726a4 _dispatch_main_queue_drain + 928 13 libdispatch.dylib 0x1b4a722f4 _dispatch_main_queue_callback_4CF + 44 14 CoreFoundation 0x1ad62fc28 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 15 CoreFoundation 0x1ad611560 __CFRunLoopRun + 1992 16 CoreFoundation 0x1ad6163ec CFRunLoopRunSpecific + 612 17 GraphicsServices 0x1e822435c GSEventRunModal + 164 18 UIKitCore 0x1af9a2f58 -[UIApplication _run] + 888 19 UIKitCore 0x1af9a2bbc UIApplicationMain + 340 20 TapestryPRO 0x104fc8b3c main + 112 21 dyld 0x1ccb38dec start + 2220 Thread 1 name: Dispatch queue: com.apple.UIKit.KeyboardManagement Thread 1: 0 libsystem_kernel.dylib 0x1ebc537dc __ulock_wait + 8 1 libdispatch.dylib 0x1b4a6489c _dlock_wait + 56 2 libdispatch.dylib 0x1b4a64650 _dispatch_thread_event_wait_slow + 56 3 libdispatch.dylib 0x1b4a73714 __DISPATCH_WAIT_FOR_QUEUE__ + 368 4 libdispatch.dylib 0x1b4a732c0 _dispatch_sync_f_slow + 148 5 UIKitCore 0x1af9a322c __37-[_UIRemoteKeyboards startConnection]_block_invoke_3 + 156 6 CoreFoundation 0x1ad609c04 __invoking___ + 148 7 CoreFoundation 0x1ad5b7cb4 -[NSInvocation invoke] + 428 8 Foundation 0x1a79626f8 __NSXPCCONNECTION_IS_CALLING_OUT_TO_REPLY_BLOCK__ + 16 9 Foundation 0x1a7933a5c -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:sequence:replyInfo:] + 520 10 Foundation 0x1a7ea4a00 __88-[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:]_block_invoke_5 + 188 11 libxpc.dylib 0x20c9baee4 _xpc_connection_reply_callout + 124 12 libxpc.dylib 0x20c9adee8 _xpc_connection_call_reply_async + 88 13 libdispatch.dylib 0x1b4a63f2c _dispatch_client_callout3 + 20 14 libdispatch.dylib 0x1b4a81e38 _dispatch_mach_msg_async_reply_invoke + 344 15 libdispatch.dylib 0x1b4a6b40c _dispatch_lane_serial_drain + 372 16 libdispatch.dylib 0x1b4a6c0d8 _dispatch_lane_invoke + 436 17 libdispatch.dylib 0x1b4a76cdc _dispatch_workloop_worker_thread + 648 18 libsystem_pthread.dylib 0x20c95addc _pthread_wqthread + 288 19 libsystem_pthread.dylib 0x20c95ab7c start_wqthread + 8
0
1
987
Sep ’23
HomePod OS 27
Hello everyone, I am trying to get my HomePod minis on the OS 27. But it is only showing that I have a public beta of 26.5. Does anyone know how to get OS 27 to show up as an option under Betas in Home App? I am a paid member of the developer program. Any information would be great!
Replies
0
Boosts
0
Views
139
Activity
5d
Thread topology data: no API path for parent-child relationships
I'm building a HomeKit app that discovers Thread devices and visualizes the mesh topology. I can detect device roles (Router vs End Device via characteristic 0x0703) and identify Border Routers (via _meshcop._udp), but I cannot determine which Router is the parent of a given End Device. Any Thread device can act as a Router (a Nanoleaf bulb, an Eve plug, not just HomePods), and End Devices attach to these Routers as children. That parent-child relationship is what I'm trying to map, but there's no RLOC16, neighbor table, or parent identifier exposed through any available API. I've tested every path I can find. Here's what I've tried on a network with 44 Thread devices and 6 Border Routers: What works (partially) HAP Thread Management Service (0x0701) gives me the device role from characteristic 0x0703, the OpenThread version from 0x0706, and node capabilities from 0x0702. That's the complete set of characteristics on that service. None of them contain RLOC16, parent Router, or neighbor data. This service also only exists on HAP-native Thread devices. My 20 Matter-over-Thread devices (Aqara, Eve Door, SmartWings, Onvis S4) don't have it at all. MeshCoP Bonjour (_meshcop._udp) identifies Border Routers and the network name/Extended PAN ID. No topology data about other mesh nodes. What doesn't work ThreadNetwork framework (THClient) - retrieveAllCredentials() returns error Code 3 because the app can't access credentials stored by Apple Home. Even if it worked, THCredentials only contains network config (name, PAN ID, channel), not topology. Direct CoAP queries - Border Routers don't route traffic from WiFi to Thread management ports. Mesh-local addresses aren't reachable. No Thread NWInterface in Network.framework. Network.framework - No visibility into the Thread mesh from the WiFi side. The only remaining path I can see (but it's not practical) Matter cluster 0x0035 (Thread Network Diagnostics) appears to have exactly what I need: RLOC16, NeighborTable with isChild boolean, RouteTable. I haven't implemented this because it requires commissioning each device individually onto my app's own Matter fabric via Multi-Admin. That's 21 separate user-initiated pairing actions on my network. I can't ask end users to do that. The core issue Every Thread Router (whether it's a HomePod acting as a Border Router or a Nanoleaf bulb acting as a mesh Router) knows its own children and neighbors. The Border Routers also maintain route tables covering the mesh backbone. This data exists on the user's own devices but none of it is exposed to third-party apps. Even something minimal would help. HMAccessory already exposes matterNodeID as a cross-protocol identifier. Exposing RLOC16 the same way would be enough, since parent-child relationships are encoded in the address itself (ParentRLOC = ChildRLOC & 0xFC00). Has anyone found another approach I'm missing? Thanks in advance for any pointers.
Replies
1
Boosts
0
Views
414
Activity
Feb ’26
Matter commissioning issue with Matter support extension
My team has developed an app with a Matter commissioner feature (for own ecosystem) using the Matter framework on the MatterSupport extension. Recently, we've noticed that commissioning Matter devices with the MatterSupport extension has become very unstable. Occasionally, the HomeUIService stops the flow after commissioning to the first fabric successfully, displaying the error: "Failed to perform Matter device setup: Error Domain=HMErrorDomain Code=2." (normally, it should send open commissioning window to the device and then add the device to the 2nd fabric). The issue is never seen before until recently few weeks and there is no code changes in the app. We are suspected that there is some data that fail to download from the icloud or apple account that cause this problem. For evaluation, we tried removing the HomeSupport extension and run the Matter framework directly in developer mode, this issue disappears, and commissioning works without any problems.
Replies
19
Boosts
0
Views
1.2k
Activity
Jan ’26
MatterSupport extension MatterAddDeviceExtensionRequestHandler Thread device failure
I am using the MatterSupport extension to commission devices for my own ecosystem. I use the extension to do the initial connection to the device (BLE, PASE, bring device onto wifi/thread) and then use the method commissionDevice(in home: MatterAddDeviceRequest.Home?, onboardingPayload: String, commissioningID: UUID) in MatterAddDeviceExtensionRequestHandler to send a request to my own hub on the local network where it then connects to the device via wifi/thread and fully commissions the device. This flow is working correctly for wifi enabled devices, however it fails for thread devices. For some context, I am using my own border router (and have already added the router's credentials to the phone using THClient's storeCredentials). Here are some device-specific results: ESP32 (WIFI): successful commission ESP32 (THREAD): failure Matter Certified ONVIS smart plug (THREAD): failure The ESP32's are running espressif matter examples. Example border router is a running OTBR docker container I believe that the entire PASE session is established and the device gets onto the thread network, but the process seems to stall after that. I have verified that selectThreadNetwork(...) and validateDeviceCredential(...) get called but the commissioning process seems to stall before it can get to commissionDevice(...) I am limited to 7k characters, but I'll try to include as many relevant log lines as I can near the error if anyone has any ideas. I've already created a bug report with ID: FB18985348 which includes the full logs from the esp32 and a sysdiagnose from an iPhone 12 Pro (iOS 18.5) using the following log profiles: Home app/HomeKit HomeThread ThreadNetwork When commissioning directly from my hub, the entire commissioning completes successfully 100% of the time. This failure only happens when I use MatterSupport to initiate commissioning for Matter over Thread devices specifically. Very condensed homed log overview for uncertified ESP32 thread example Next: 'SecurePairing' -> 'ReadCommissioningInfo' Step: 'ReadCommissioningInfo' Sending read requests for commissioning information NetworkCommissioning Features: has Thread. endpointid = 0 <MTRDeviceController_Concrete: ..., uuid: F9BB9F53-BF73-4B82-B00B-045E7709530E...> completed for nodeID 0x0000000055d193ec with status: Success ✔ 'ReadCommissioningInfo' Next: 'ReadCommissioningInfo' -> 'ArmFailSafe' Step: 'ArmFailSafe' ✔ 'ArmFailSafe' Next: 'ArmFailSafe' -> 'ConfigRegulatory' Step: 'ConfigRegulatory' ✔ 'ConfigRegulatory' Next: 'ConfigRegulatory' -> 'ConfigureTCAcknowledgments' Step: 'ConfigureTCAcknowledgments' ✔ 'ConfigureTCAcknowledgments' Next: 'ConfigureTCAcknowledgments' -> 'SendPAICertificateRequest' Step: 'SendPAICertificateRequest' ✔ 'SendPAICertificateRequest' Next: 'SendPAICertificateRequest' -> 'SendDACCertificateRequest' Step: 'SendDACCertificateRequest' ✔ 'SendDACCertificateRequest' Next: 'SendDACCertificateRequest' -> 'SendAttestationRequest' Step: 'SendAttestationRequest' ✔ 'SendAttestationRequest' Next: 'SendAttestationRequest' -> 'AttestationVerification' Step: 'AttestationVerification' Error on commissioning step 'AttestationVerification': Internal error Next: 'AttestationVerification' -> 'AttestationRevocationCheck' Step: 'AttestationRevocationCheck' (with error) Device attestation error: Integrity check failed. Continue commissioning (ignore attestation failure: YES) ✔ 'AttestationRevocationCheck' Next: 'AttestationRevocationCheck' -> 'SendOpCertSigningRequest' Step: 'SendOpCertSigningRequest' ✔ 'SendOpCertSigningRequest' Next: 'SendOpCertSigningRequest' -> 'ValidateCSR' Step: 'ValidateCSR' ✔ 'ValidateCSR' Next: 'ValidateCSR' -> 'GenerateNOCChain' Step: 'GenerateNOCChain' ✔ 'GenerateNOCChain' Step: 'SendTrustedRootCert' ✔ 'SendTrustedRootCert' Next: 'SendTrustedRootCert' -> 'SendNOC' Step: 'SendNOC' ✔ 'SendNOC' Next: 'SendNOC' -> 'ThreadNetworkSetup' Step: 'ThreadNetworkSetup' ✔ 'ThreadNetworkSetup' Next: 'ThreadNetworkSetup' -> 'FailsafeBeforeThreadEnable' Step: 'FailsafeBeforeThreadEnable' ✔ 'FailsafeBeforeThreadEnable' Next: 'FailsafeBeforeThreadEnable' -> 'ThreadNetworkEnable' Step: 'ThreadNetworkEnable' ✔ 'ThreadNetworkEnable' Next: 'ThreadNetworkEnable' -> 'kEvictPreviousCaseSessions' Step: 'kEvictPreviousCaseSessions' ✔ 'kEvictPreviousCaseSessions' Next: 'kEvictPreviousCaseSessions' -> 'kFindOperationalForStayActive' Step: 'kFindOperationalForStayActive' Error: Timeout Next: 'kFindOperationalForStayActive' -> 'Cleanup' Step: 'Cleanup' (with timeout error) ✔ 'Cleanup' Commissioning complete for node ID 0x0000000055D193EC with timeout error
Replies
2
Boosts
1
Views
463
Activity
Dec ’25
Thread Network API not working
I'm trying to use ThreadNetwork API to manage TheradNetworks on device (following this documentation: https://developer.apple.com/documentation/threadnetwork/), but while some functions on THClient work (such as getPreferedNetwork), most don't (storeCredentials, retrieveAllCredentials). When calling these functions I get the following warning/error: Client: -[THClient getConnectionEntitlementValidity]_block_invoke - Error: -[THClient storeCredentialsForBorderAgent:activeOperationalDataSet:completion:]_block_invoke:701: - Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service with pid 414 named com.apple.ThreadNetwork.xpc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service with pid 414 named com.apple.ThreadNetwork.xpc was invalidated from this process.} Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service with pid 414 named com.apple.ThreadNetwork.xpc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service with pid 414 named com.apple.ThreadNetwork.xpc was invalidated from this process.} Failed to store Thread credentials: Couldn’t communicate with a helper application. STEPS TO REPRODUCE Create new project Add Thread Network capability via Xcode UI (com.apple.developer.networking.manage-thread-network-credentials) Trigger storeCredentials let extendedMacData = "9483C451DC3E".hexadecimal let tlvHex = "0e080000000000010000000300001035060004001fffe002083c66f0dc9ef53f1c0708fdb360c72874da9905104094dce45388fd3d3426e992cbf0697b030d474c2d5332302d6e65773030310102250b04106c9f919a4da9b213764fc83f849381080c0402a0f7f8".hexadecimal // Initialize the THClient let thClient = THClient() // Store the credentials await thClient.storeCredentials(forBorderAgent: extendedMacData!, activeOperationalDataSet: tlvHex!) { error in if let error = error { print(error) print("Failed to store Thread credentials: \(error.localizedDescription)") } else { print("Successfully stored Thread credentials") } } NOTES: I tried with first calling getPreferedNetwork to initiate network permission dialog Tried adding meshcop to bojur services Tried with different release and debug build configurations
Replies
7
Boosts
0
Views
597
Activity
Dec ’25
Matter request extension no long working for Thread devices
My app has been working fine until just recently, now it can not add Matter devices over Thread (Wifi commissioning still works). I didn't change anything on my side, so not sure if an update maybe changed things? In any case, reading through my logs (and i have the matter/thread debug profiles installed). it seems like the device is added to the thread network fine, and it looks to me like the phone is successfully commissioning the device to the Apple setup fabric, but then it seems to choke on this line and i don't think the device is actually added to the keychain/matter db, so it fails later on . error 12:18:03.369036-0700 homed [2610726604/1195614123(679130348)] failed to find metric hmmtrAccessoryMetricNameCommissioningAccessory to complete I can confirm the device does join my thread border router as its pingable, and it does not seem to be in setup mode anymore (light stops flashing), so i assume it thinks its commissioned. The device i'm pairing is a Onvis (matter certified) outlet to an espressif build of a OTBR. My phone is running 18.4.1 if that matters (no pun intended) . I have also cleared out existing Matter pairings from the phone, as well ensured the device was factory reset before every try. Here is a snippet of the log towards the end where is looks like pairing works, but then errors out. I would post more but my post has a 7k character limit. default 12:18:02.836555-0700 homed Success status report received. Session was established default 12:18:02.836734-0700 homed SecureSession[0x9bb100f00, LSID:64711]: State change 'kEstablishing' --> 'kActive' default 12:18:02.837438-0700 homed Successfully finished commissioning step 'kFindOperationalForStayActive' default 12:18:02.837467-0700 homed Commissioning stage next step: 'kFindOperationalForStayActive' -> 'ICDSendStayActive' default 12:18:02.837500-0700 homed Performing next commissioning step 'ICDSendStayActive' default 12:18:02.837574-0700 homed Skipping kICDSendStayActive default 12:18:02.837627-0700 homed Successfully finished commissioning step 'ICDSendStayActive' default 12:18:02.837650-0700 homed Commissioning stage next step: 'ICDSendStayActive' -> 'kFindOperationalForCommissioningComplete' default 12:18:02.837670-0700 homed Performing next commissioning step 'kFindOperationalForCommissioningComplete' default 12:18:02.838036-0700 homed Found an existing secure session to [2:000000009B9C86CC]! default 12:18:02.838149-0700 homed Successfully finished commissioning step 'kFindOperationalForCommissioningComplete' default 12:18:02.838697-0700 homed Commissioning stage next step: 'kFindOperationalForCommissioningComplete' -> 'SendComplete' default 12:18:02.838893-0700 homed Performing next commissioning step 'SendComplete' default 12:18:02.839092-0700 homed <<< [E:35494i S:64711 M:193726318] (S) Msg TX from 0000000086BCA241 to 2:000000009B9C86CC [47A0] [UDP:[fd01:11b8:de1c:1:968a:c465:6fe8:e12a]:5540] --- Type 0001:08 (IM:InvokeCommandRequest) (B:59) default 12:18:02.839133-0700 homed ??1 [E:35494i S:64711 M:193726318] (S) Msg Retransmission to 2:000000009B9C86CC scheduled for 2910ms from now [State:Active II:800 AI:800 AT:4000] default 12:18:02.839257-0700 homed <<< [E:35493i S:0 M:19014618 (Ack:7538941)] (U) Msg TX from 3251BD376C43B658 to 0:0000000000000000 [0000] [UDP:[fd01:11b8:de1c:1:968a:c465:6fe8:e12a]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:26) default 12:18:03.356373-0700 homed >>> [E:35494i S:64711 M:174417481 (Ack:193726318)] (S) Msg RX from 2:000000009B9C86CC [47A0] to 0000000086BCA241 --- Type 0001:09 (IM:InvokeCommandResponse) (B:70) default 12:18:03.356559-0700 homed Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 default 12:18:03.356584-0700 homed Received CommissioningComplete response, errorCode=0 default 12:18:03.356622-0700 homed Successfully finished commissioning step 'SendComplete' default 12:18:03.356648-0700 homed Commissioning stage next step: 'SendComplete' -> 'Cleanup' default 12:18:03.356746-0700 homed Performing next commissioning step 'Cleanup' default 12:18:03.356803-0700 homed Successfully finished commissioning step 'Cleanup' default 12:18:03.356916-0700 homed Closing all BLE connections default 12:18:03.357084-0700 homed Auto-closing end point's BLE connection. default 12:18:03.358146-0700 homed SecureSession[0x9bb1003c0, LSID:64710]: State change 'kActive' --> 'kPendingEviction' default 12:18:03.358652-0700 homed Commissioning complete for node ID 0x000000009B9C86CC: success default 12:18:03.358678-0700 homed <MTRDeviceController_Concrete: 0x9b8e33100, uuid: 3F6C2281-D873-4D82-BE3E-722446EA66E7, suspended: NO> DeviceControllerDelegate Commissioning complete. NodeId 0x000000009b9c86cc Status src/controller/CHIPDeviceController.cpp:2932: Success ... default 12:18:03.367999-0700 homed <MTRDeviceController_Concrete: 0x9b8e33100, uuid: 3F6C2281-D873-4D82-BE3E-722446EA66E7, suspended: NO> 1 delegates called for -[MTRDeviceController controller:commissioningComplete:nodeID:metrics:] error 12:18:03.369036-0700 homed [2610726604/1195614123(679130348)] failed to find metric hmmtrAccessoryMetricNameCommissioningAccessory to complete error 12:18:03.426636-0700 HomeUIService Unexpected accessory setup progress CASE Session Sanity Check Passed default 12:18:03.426850-0700 homed Could not find home with valid fabric ID corresponding to fabric UUID: FB19AA02-5E34-40C5-BB9D-B1B1AF51E08B ... error 12:18:03.460841-0700 homed [188914BD-5163-425C-9E59-CAE9BFA1A288] Could not find system commissioner pairing for newly staged server with identifier f1:64:16:3f:79:b8 in all pairings: ( .. default 12:18:03.460906-0700 homed Answering incoming message HMASC.m.confirmDeviceCredential (186EE57F-330B-435F-A949-0E4C5D6954AB) from client 'HomeUIService' that expects a response with error Error Domain=HMErrorDomain Code=2 "(null)" error 12:18:03.461167-0700 HomeUIService [BD890E19] Failed to stage CHIP accessory pairing in steps: Error Domain=HMErrorDomain Code=2 "(null)" error 12:18:03.462121-0700 HomeUIService -[HSSetupStateMachineCHIPPartnerConfiguration stageCHIPAccessory]_block_invoke Failed to stage CHIP accessory: Error Domain=HMErrorDomain Code=2 "(null)" default 12:18:03.462172-0700 HomeUIService -[HSSetupStateMachineConfiguration setPairingError:] *** Setting pairingError *** = Error Domain=HMErrorDomain Code=2 "(null)"
Replies
3
Boosts
0
Views
309
Activity
May ’25
Matter Generic Switch not resuming subscription on reboot
I'm developing a Matter-over-thread generic switch with 2 generic switch endpoints. This is configured as an Intermittently Connected Device with Long Idle Time. I have an Apple TV serving as the thread border router. I'm able to commission the device successfully in the Home app and assign actions to each of the buttons however when the device is rebooted the subscription doesn't appear to resume successfully and the buttons no longer work. I've tested this on various SOC's with their respective SDKs including ESP32-C6, nrf52840 and EFR32MG24 and the behaviour was consistent across all of them. It was working originally when I first started out on the ESP32-C6, then the issue popped up first when I was testing the nrf52840. In that SDK I set persistent subscriptions explicitly and it seemed to resolve the issue until it popped up again when I found that unplugging and restarting the Apple TV completely which appeared to fix the issue with subscriptions not resuming. Recently I've added a Home Pod Mini Gen 2 to the matter fabric so there are now two TBR on the network and restarting both the Apple TV and the HomePod doesn't appear to resolve the issue anymore and the subscriptions are not resuming across all three SOC's on device reboot I'm wondering if there might be something preventing the subscriptions from resuming?
Replies
2
Boosts
0
Views
236
Activity
May ’25
Some issues regarding the utilization of Matter Support
During the commissioning process of our app, the following two errors frequently occur: 1.Could not find system commissioner pairing for newly staged server with identifier <private> in all pairings 2.Failed to open pairing window on the device I have uploaded the log with the ID: FB17343511 Could you assist us in resolving this issue? Thank you.
Replies
0
Boosts
0
Views
150
Activity
Apr ’25
How to test application using Thread networking on MacOS?
I would like to test running some Thread Networking code on my MacOS machine: import ThreadNetwork let client = THClient() let bIsPreferredAvailable = await client.isPreferredAvailable() but I get some errors when trying to create an instance of the THClient class: Client: -[THClient connectToXPCService]_block_invoke - CTCS XPC Client is interrupted. Client: -[THClient getConnectionEntitlementValidity]_block_invoke - clientProxyWithErrorHandler Error: Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.ThreadNetwork.xpc" UserInfo={NSDebugDescription=connection to service named com.apple.ThreadNetwork.xpc} Client: -[THClient init] - XPC Client Init Failed Invalidating XPC connection. Client: -[THClient getConnectionEntitlementValidity]_block_invoke - clientProxyWithErrorHandler Error: Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.ThreadNetwork.xpc" UserInfo={NSDebugDescription=connection to service named com.apple.ThreadNetwork.xpc} How can I get the code to run?
Replies
0
Boosts
0
Views
290
Activity
Mar ’25
Using activeOperationalDataSet with Matter chip-tool
I am trying to commission an ESP32-H2 Matter device using the chip-tool. It's running the Light Switch sample. I can commissioning it using the iOS Home App, so I know the code on it's working okay. I would like to understand more about the Fabric process, so I'd like to use the Home Pod powered Thread network rather than setting up an instance of Open Thread Border Router. I have created a simple iOS app and can fetch the activeOperationalDataSet from the Preferred network using func obtainPreferredNetworkCredentials() async -> (Void) { let client = THClient() let bIsPreferredAvailable = await client.isPreferredAvailable() if bIsPreferredAvailable == true { var credential: THCredentials? do { credential = try await client.preferredCredentials() if let dataset = credential?.activeOperationalDataSet { print(dataset.hexDescription) } } catch { print("Failed to get the credentials") } } } The hexDescription comes from this extension extension Data { var hexDescription: String { return reduce("") {$0 + String(format: "%02x", $1)} } } I am decoding the Data and displaying it as a hex string. It looks something like this: 0e080000000000000000000300001935060004001fffc002089f651677026f48070708fd9f65167702000ee90914b5d1097de9bb0818dc94690c0402a0f7f8 However, when I attempt to commission the device, it fails during ThreadSetup. Googling the issue says most likely the Operational Dataset is wrong in some way. Before I spend too much time on this, I want to make sure I'm doing the right thing in terms of getting the Operational Dataset to use with the chip-tool. Any help is appreciated!
Replies
1
Boosts
0
Views
382
Activity
Mar ’25
How to use notification to notify shared container changes in cloudkit?
I would like to create a private container and share a zone between two users with different iCloud accounts. All changes made by one would be notified with push notifications to the other user's db. Both could change the same information. Exactly as it is done in this apple project. https://developer.apple.com/documentation/cloudkit/shared_records/sharing_cloudkit_data_with_other_icloud_users However, I have been reading this code for days and I am stuck on it, it is extremely complicated for my level. I would really like to know if there is any simple project that uses the same idea to build this logic with swiftui.
Replies
3
Boosts
0
Views
1.3k
Activity
Oct ’24
THClient "storeCredentials" error: "Can not store frozen credentials"
I have some user of my App reporting that they are not able to store thread network credentials in keychain, the error they get is "Can not store frozen credentials". I couldn't find documentation around this error message, can anyone help me with it's meaning? Why this specific credential can't be stored in keychain?
Replies
1
Boosts
0
Views
800
Activity
Sep ’24
How to use ThreadNetwork.framework Api
Hello, I would like to ask if I can use ThreadNetwork.framework. My project has been configured with com.apple.developer. networking. manage thread network credentials according to the documentation, but the relevant API still cannot be used. Currently, there is an error message: Client: - [THClient getConnectionEntitlementValidity] block invoice - Error: (null) Client: [THClient retrieveAllCredits:] _block_invoke - Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service with pid 555 named com. apple. ThreadNetwork. xpc was validated from this process." UserInfo={NSDebugDescription=The connection to service with pid 555 named com. apple. ThreadNetwork. xpc was validated from this process.} May I ask if I can use the relevant API
Replies
0
Boosts
1
Views
561
Activity
Apr ’24
IP ports and protocols used by HomeKit accessories
Is there a good source of documentation on what IP ports and protocols are used by HomeKit accessories?
Replies
0
Boosts
1
Views
767
Activity
Mar ’24
Safari Timeout issue (Cancelling API request after 60 sec)
Safari Browser killing Long Running API requests after 60 seconds. Do we have any way to increase a timeout limit?
Replies
0
Boosts
2
Views
1.2k
Activity
Feb ’24
OS 17及以上版本中VPN连接后特定流量不通过本地网络的问题求解
尊敬的开发者社区成员, 我最近在开发iOS平台上的VPN应用程序时遇到了一个问题,希望能在这里寻求一些帮助和建议。在我的应用程序中,我注意到在iOS 17及以上版本中,连接到VPN后,特定流量似乎不再通过本地网络发送,而是直接通过VPN连接发送。 为了解决这个问题,我已经尝试了以下几种方法: 确保VPN配置正确,并与VPN服务提供商确认配置是否符合预期。 在iOS设备上检查系统设置,确保VPN配置被正确应用。 使用网络抓包工具分析网络流量,观察流量的源和目的地址,以确定是否通过VPN连接发送数据。 然而,尽管我已经采取了这些步骤,问题仍然存在。我怀疑这可能是iOS 17及以上版本中网络堆栈实现的变化所导致的。因此,我正在寻找更多的调查和解决方案,以确定问题的根本原因,并找到一个可行的解决方案。 如果您在iOS 17及以上版本中遇到了类似的问题,或者您对iOS网络连接行为有深入的了解,请不要犹豫,与我分享您的经验和建议。我非常感谢您的帮助和支持。 谢谢!
Replies
0
Boosts
0
Views
1.2k
Activity
Feb ’24
How do I use a Thread Network API in IOS
Hi there I tried to use a Thread Network in my App. Actually I added ThreadNetwork in frameworks folder and I tried to initialize THClient pointer. THClient* Thread = [[THClient alloc] init]; but error is occur as bellowing "[thclient] Client: -[THClient connectToXPCService]_block_invoke - CTCS XPC Client is invalidated." May I get an advice?? Thanks
Replies
26
Boosts
1
Views
5.8k
Activity
Nov ’23
Facing issue in using ThreadNetwork API in iOS
Hi, I am trying to use ThreadNetwork APIs in my app. When I try to invoke any thread API I am getting the following error: "[thclient] Client: -[THClient connectToXPCService]_block_invoke - CTCS XPC Client is invalidated." Also the process to add thread entitlement to the app is not clear. I have added the ThreadNetwork Mobile Profile on my device but I still get the above error. Could I get some help with this? Thanks.
Replies
2
Boosts
1
Views
990
Activity
Nov ’23
Can I control a non-standard matter cluster by HomeKit SDK?
I have run thru the Matter documentation and going to create my own non-standard cluster in my matter device for my own use case. Question is Can I control a non-standard matter cluster by HomeKit SDK? I run thru the HomeKit SDK document but cannot find any hints.
Replies
0
Boosts
0
Views
803
Activity
Nov ’23
Crash on _dispatch_semaphore_wait_slow
Our App is starting to crash (SIGABRT) with the following semaphore failure: _dispatch_semaphore_wait_slow + 132 that´s the stack trace of the affected threads: CrashReporter Key: 682241501eca714a73bcfc32a9fc72f3697580c2 Hardware Model: iPad8,3 Process: TapestryPRO [590] Path: /private/var/containers/Bundle/Application/19755567-CB9E-49C2-9506-C3087BB86227/TapestryPRO.app/TapestryPRO Identifier: com.t-mobile.Tapestry-PRO Version: 1.900.8 (1.900.8) Code Type: ARM-64 (Native) Role: Foreground Parent Process: launchd [1] Coalition: com.t-mobile.Tapestry-PRO [529] Date/Time: 2023-09-12 14:18:50.2918 -0400 Launch Time: 2023-09-12 14:17:34.2497 -0400 OS Version: iPhone OS 16.6.1 (20G81) Release Type: User Baseband Version: 5.03.01 Report Version: 104 Exception Type: EXC_CRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Termination Reason: FRONTBOARD 2343432205 <RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-update watchdog transgression: application<com.t-mobile.Tapestry-PRO>:590 exhausted real (wall clock) time allowance of 10.00 seconds ProcessVisibility: Foreground ProcessState: Running WatchdogEvent: scene-update WatchdogVisibility: Foreground WatchdogCPUStatistics: ( "Elapsed total CPU time (seconds): 40.950 (user 40.950, system 0.000), 47% CPU", "Elapsed application CPU time (seconds): 0.300, 0% CPU" ) reportType:CrashLog maxTerminationResistance:Interactive> Triggered by Thread: 0 Kernel Triage: VM - (arg = 0x0) pmap_enter retried due to resource shortage Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libsystem_kernel.dylib 0x1ebc52c20 semaphore_wait_trap + 8 1 libdispatch.dylib 0x1b4a64448 _dispatch_sema4_wait + 28 2 libdispatch.dylib 0x1b4a64afc _dispatch_semaphore_wait_slow + 132 3 TapestryPRO 0x104fc70a8 -[TapestryServices serviceCallUsingRequest:] + 632 4 TapestryPRO 0x104fc6e18 -[TapestryServices serviceCallUsingMutableRequest:] + 232 5 TapestryPRO 0x104fc6c6c -[TapestryServices serviceCallUsingMutableRequestReturnData:] + 180 6 TapestryPRO 0x104fdf370 -[TapestrySSOAccess getStoreId:error:] + 948 7 TapestryPRO 0x104f2efcc -[TapestrySSO getStoreId:] + 416 8 TapestryPRO 0x104f34794 -[LoginViewController getStoreId] + 132 9 TapestryPRO 0x104f33fa4 __39-[LoginViewController handleSSOHandoff]_block_invoke_3 + 116 10 libdispatch.dylib 0x1b4a62320 _dispatch_call_block_and_release + 32 11 libdispatch.dylib 0x1b4a63eac _dispatch_client_callout + 20 12 libdispatch.dylib 0x1b4a726a4 _dispatch_main_queue_drain + 928 13 libdispatch.dylib 0x1b4a722f4 _dispatch_main_queue_callback_4CF + 44 14 CoreFoundation 0x1ad62fc28 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 15 CoreFoundation 0x1ad611560 __CFRunLoopRun + 1992 16 CoreFoundation 0x1ad6163ec CFRunLoopRunSpecific + 612 17 GraphicsServices 0x1e822435c GSEventRunModal + 164 18 UIKitCore 0x1af9a2f58 -[UIApplication _run] + 888 19 UIKitCore 0x1af9a2bbc UIApplicationMain + 340 20 TapestryPRO 0x104fc8b3c main + 112 21 dyld 0x1ccb38dec start + 2220 Thread 1 name: Dispatch queue: com.apple.UIKit.KeyboardManagement Thread 1: 0 libsystem_kernel.dylib 0x1ebc537dc __ulock_wait + 8 1 libdispatch.dylib 0x1b4a6489c _dlock_wait + 56 2 libdispatch.dylib 0x1b4a64650 _dispatch_thread_event_wait_slow + 56 3 libdispatch.dylib 0x1b4a73714 __DISPATCH_WAIT_FOR_QUEUE__ + 368 4 libdispatch.dylib 0x1b4a732c0 _dispatch_sync_f_slow + 148 5 UIKitCore 0x1af9a322c __37-[_UIRemoteKeyboards startConnection]_block_invoke_3 + 156 6 CoreFoundation 0x1ad609c04 __invoking___ + 148 7 CoreFoundation 0x1ad5b7cb4 -[NSInvocation invoke] + 428 8 Foundation 0x1a79626f8 __NSXPCCONNECTION_IS_CALLING_OUT_TO_REPLY_BLOCK__ + 16 9 Foundation 0x1a7933a5c -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:sequence:replyInfo:] + 520 10 Foundation 0x1a7ea4a00 __88-[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:]_block_invoke_5 + 188 11 libxpc.dylib 0x20c9baee4 _xpc_connection_reply_callout + 124 12 libxpc.dylib 0x20c9adee8 _xpc_connection_call_reply_async + 88 13 libdispatch.dylib 0x1b4a63f2c _dispatch_client_callout3 + 20 14 libdispatch.dylib 0x1b4a81e38 _dispatch_mach_msg_async_reply_invoke + 344 15 libdispatch.dylib 0x1b4a6b40c _dispatch_lane_serial_drain + 372 16 libdispatch.dylib 0x1b4a6c0d8 _dispatch_lane_invoke + 436 17 libdispatch.dylib 0x1b4a76cdc _dispatch_workloop_worker_thread + 648 18 libsystem_pthread.dylib 0x20c95addc _pthread_wqthread + 288 19 libsystem_pthread.dylib 0x20c95ab7c start_wqthread + 8
Replies
0
Boosts
1
Views
987
Activity
Sep ’23