Homey Self-Hosted Matter-over-Thread - Matter pairing 404 error: "PairSession with ID ... Not Found"

Hi everyone,

I’m running the new Homey Self-Hosted Server in a Docker container on an Unraid host. While the server is running great for Wi-Fi devices, I am consistently failing to pair a Tado Smart Thermostat X (Matter-over-Thread).

The Setup:

  • Host: Unraid (Host network mode, privileged, IPv6 fully enabled on br0 with /64 prefix).

  • Networking: UniFi gateway with mDNS and UPnP active. Whitelisted DCE/RPC traffic for the server.

  • TBRs: I have a Google TV Streamer and Google Nest Hub (2nd Gen) acting as Thread Border Routers on the same network.

The Issue: Every time I attempt to add the Tado X (whether using the original QR code or a “shared” Matter code from Google Home), I get the error: “Failed to generate device credentials” in the app.

When I check my Homey logs, I see a constant stream of 404 errors during the handshake: Server HTTP POST /manager/drivers/pairsession/[ID]/emit -> Error 404: Not Found: PairSession with ID [ID].

What I’ve tried:

  1. Full factory resets of the Tado hardware .

  2. Ensuring the container is in Host Mode.

  3. Pairing to Google Home first, then sharing via numeric code.

  4. Issue: I do NOT get the “Connect via Android/iOS” option; the app defaults to “Connect via Homey,” which I assume fails because my server has no physical Thread radio.

Has anyone successfully managed to “force” the Homey mobile app to use the phone’s Thread credentials for a self-hosted instance? Is there a specific sysctl or Docker flag needed to make the PairSession ID visible over the network during the Matter handshake?

Any insights from the SHS experts here would be much appreciated!

Sai

Once you’ve added a Matter-over-Thread device with Android, it sticks to the choice of Thread Border Router you made at the time.

The only way to change that, is to factory reset your phone, or, better, grab an old(er) Android device and factory reset it, install Homey app and add the Matter-over-Thread device. If all went well you’d be able to select the Thread Border Router to use.

https://support.homey.app/hc/en-us/articles/12010766903580-Thread-for-Homey-Pro-and-Homey-Pro-mini

Just confirming I seem to run into the same problem. My thread border router is an apple tv/homepods. I can connect the Lafaer sensor to Apple’s Home and then pair the same sensor to Home Assistant by putting it in pair mode in Apple Home (getting the pair code from apple home). This works perfectly fine, I can also make the sensor available to Homey via Home Assistant community app.

But if I try with a new sensor to do the same, first Apple home → pair mode → connect to Homey it sees the sensor, it starts to configure it. It even puts it back to normal mode. And then it starts to try and find it and it errors out. Same if I first start with Homey and not connect the sensor to Apple at all. Same process same error.

Running Homey SHS on Mac Mini, host mode. (using homey app on iphone btw).

Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerCloud] Proxy POST /api/manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat
Server HTTP POST /manager/drivers/pairsession/a6a43501-a663-4fec-b869-c2bbe5d40432/heartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:energy:getLiveReport
Homey [log][ManagerApiLocal] IO homey:manager:energy:getLiveReport → Success 200
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
Homey [log][ManagerMatterLocal] [Pairing:0x7b548283] Start
Homey [log][ManagerMatterLocal] [Pairing:0x7b548283] Got status update: SEARCHING (-0x01, Unknown)
Homey [log][ManagerMatterLocal] Updating PAA certs
Homey [log][ManagerMatterLocal] DCLs: https://on.dcl.csa-iot.org. Git: false
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
Homey [log][ManagerMatterLocal] [Pairing:0x7b548283] Starting pairing with payload
Homey [log][ManagerMatterLocal] [Pairing:0x7b548283] Pairing to device…
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [err][ManagerMatterLocal] [Pairing:0x7b548283] Finished with error: Could not pair node (Matter code: TIMEOUT (0x0032))
Homey [err][ManagerMatterLocal] [Pairing:0x7b548283] Failed: Could not pair node (Matter code: TIMEOUT (0x0032)) (at stage: unknown)

Where did you get those logs?

Running on a mac mini with orbstack. When I navigate to logs of the container this shows. I guess it’s basic docker logs.

I noticed that I have no issue connecting a matter (over thread) device to the homey-pro, but I do when trying to connect it to the Self hosted server (synology + container manager). I can find the device and seems to be connecting it to the network, but when trying to connect to it an ‘unable to connect’ message appears.

When connecting it to the Homey Pro I can select between ‘Connect using Homey’ and ‘Connect using Android’. I’m using ‘connect using homey’. But when I connect to SHS I do not get that choice at all.

That makes sense. Homey Pro creates it’s own Thread network using the build in Thread border router, while SHS depends on an external thread border router like some Apple devices or Google Nest Hub.

The problem seems to be that SHS is unable to connect to Matter devices over the external thread border router.

In my scenario I first add the Matter device to the Thread network of my Google Nest Hub. That step is succesful. After that Homey tries to get shared access to the device, but that’s when a timeout occurs.

For the record, I am able to connect to Matter devices over WiFi succesfully. It’s the Tread part that’s not working in SHS.

IPv6?

Matter also requires IPv6, so if Matter-over-WiFi devices are working you would expect IPv6 to be up and running. However, there are some IPv6 intricacies that need to be working too, like router advertisements. I think those are not necessarily a requirement for Matter-over-WiFi, but they are for Thread border routers (since they basically set up their own IPv6 subnet for the Thread devices, and other devices, like Homey, need to know how to route traffic to that subnet to be able to access the devices).

1 Like

Fact is that Home Assistant can adopt a matter device that is first connected to Apple Home, using the apple tv as thread border router.
The very same steps with Homey result in an error. Still can’t connect these sensors directly nor via the pairing mode in Apple Home.
Homey SHS runs in Orbstack docker
Home Assistant in a VM
Both on the apple mini

I assume you turned on IPv6 support?

Thanks for reminding me on this one. I did for the system, but I will check Orbstack this evening!

So enabled ipv6 on Orbstack. Tried pairing once more. But no success :disappointed_face: