Smart Home
Matter-over-Thread commissioning stuck
Split a stuck Matter commission into its two phases — BLE pairing (PASE) vs join-network and operational discovery (mDNS/CASE) — and fix the IPv6/VLAN causes behind each.
Problem summary
Matter commissioning is two phases with two different failure modes. Phase one is Bluetooth LE discovery + PASE from the setup code; phase two is joining the network (Thread via the border router, or Wi-Fi) then operational discovery over mDNS and CASE. BLE-phase failures are proximity/passcode/one-session-at-a-time; phase-two failures are IPv6 being blocked, mDNS not crossing a VLAN, or the Thread border router being unreachable. Matter requires IPv6 — but link-local is enough; it just must not be blocked.
Note where it stalls: during Bluetooth pairing, or after, while 'connecting to network'.
dns-sd -B _matter._tcp (operational) / _matterc._udp (commissionable)
You can place the failure in phase one (BLE) or phase two (network/mDNS).
Don't collapse the VLANs — reflect mDNS and stop blocking IPv6 instead.
Layer path
Step-by-step runbook
Start here. Do each check in order, compare it to the expected result, and stop when the evidence explains the failure or the safe stop point applies.
Locate the failure phase
Check: Watch whether it stalls during Bluetooth or after, on the network step.
Expected result: You know whether to fix BLE or the network/mDNS path.
If not: If it never starts a Wi-Fi device, suspect a 2.4 GHz/band-steering issue.
Clear the BLE phase
Check: Commission close to the device, Bluetooth on, only one app, correct code.
Expected result: Phase-one PASE completes and it moves to joining the network.
If not: If a second controller is mid-commission, close it and restart.
Unblock what phase two needs
Check: Ensure IPv6 isn't blocked and mDNS reflects across any VLAN.
Expected result: Operational discovery (_matter._tcp) and CASE complete.
If not: Don't collapse VLANs — reflect mDNS and allow IPv6 instead.
Verify the Thread path (over-Thread devices)
Check: Confirm a border router is online and reachable.
Expected result: The device joins Thread and becomes discoverable.
If not: If not, resolve border-router fragmentation/reachability first.
Retry and confirm operational
Check: Re-commission, then confirm the device responds in the app.
Expected result: The device is commissioned and controllable.
If not: If it commissions but later drops, check mesh/range and multi-admin load.
Decision tree
If: Fails during Bluetooth pairing.
Then: BLE phase — proximity, code, Bluetooth, or a competing session.
Action: Move closer, verify the code/Bluetooth, and ensure only one app is commissioning.
If: Pairs over BLE then hangs 'connecting to network'.
Then: Phase two — IPv6 blocked, mDNS not crossing VLAN, or border router unreachable.
Action: Unblock IPv6, reflect mDNS, and confirm the Thread border router is online.
If: Works on a flat network but fails once segmented.
Then: VLAN is dropping IPv6/mDNS the protocol needs.
Action: Add mDNS reflection and allow IPv6 between the device VLAN and the controller/hub.
Safe stop: Don't collapse the VLANs — reflect mDNS and stop blocking IPv6 instead.
If: A Matter-over-Wi-Fi device won't even start.
Then: Almost always a 2.4 GHz-only radio and the phone/AP steering it to 5 GHz.
Action: Put the phone on 2.4 GHz (or split the SSID) during commissioning.
Evidence table
| Symptom | Evidence to collect | Likely layer | Next action |
|---|---|---|---|
| Stalls at the Bluetooth step. | Phone-to-device distance, the setup code, Bluetooth state, other open apps. | BLE / PASE phase | Re-try close up with Bluetooth on and a single commissioning app. |
| 'Connecting to network' never finishes. | IPv6 state on the path; mDNS reflection across VLANs; border-router reachability. | Operational discovery / CASE | Unblock IPv6, reflect mDNS, confirm the border router is online. |
| Commissioned a plug with 'IPv6 disabled' but a Thread device fails. | Whether link-local IPv6 still exists vs IPv6 actually blocked at L2/L3. | IPv6 (link-local vs blocked) | Treat 'must not be blocked' as the rule; link-local suffices on one link. |
| Only fails after network segmentation. | mDNS reflector presence and inter-VLAN IPv6 rules. | VLAN / mDNS | Reflect mDNS and allow IPv6 between device and controller VLANs. |
Commands and settings paths
Discover the Matter service over mDNS
dns-sd -B _matter._tcp (operational) / _matterc._udp (commissionable)
Where: From a Mac on the device's network/VLAN.
Expected: The device advertises and is listed.
Failure means: Nothing listed across a VLAN means mDNS isn't reflected.
Safe next step: Enable an mDNS reflector or commission on a single VLAN.
Confirm IPv6 reachability
ping6 <device-link-local%iface>
Where: From a computer on the same link as the device.
Expected: The device replies over IPv6.
Failure means: No reply means IPv6 is blocked or filtered on the path.
Safe next step: Stop blocking IPv6; link-local is enough on the same link.
Check the Thread border router (for Matter-over-Thread)
Confirm the hub shows 'Connected' / ping6 the border router
Where: In the ecosystem app and from the LAN.
Expected: The border router is online and reachable.
Failure means: An offline/unreachable border router blocks phase-two discovery.
Safe next step: Restore the border router; see /smart-home/no-thread-border-router-found.
Hardware and platform boundary
Change only when
- Add an mDNS reflector-capable router/firewall (or keep the smart-home VLAN flat) when commissioning fails only after segmentation, and a reliable Thread border router for over-Thread devices.
Evidence that matters
- A router that supports mDNS reflection and unblocked IPv6 across the smart-home VLAN, plus a healthy Thread border router for over-Thread accessories.
Evidence that does not matter
- Forcing global/ISP IPv6 — Matter needs IPv6 unblocked, not a public IPv6 prefix; link-local suffices on one link.
Avoid
- Collapsing VLANs to 'fix' commissioning (reflect mDNS instead) or running two controllers' commissioning at once.
Related tool
Use the linked tool to turn this runbook into a guided check for your exact setup.
Device setup troubleshooterRelated problems
Last reviewed
2026-06-03 · Reviewed by HomeTechOps. Built from 2026-06 research verified against Google Home Developers' commissioning/discovery primer and Matter's IPv6 + mDNS requirements; the differentiator is splitting BLE-phase from CASE-phase failures and correcting the over-stated 'Matter needs ISP IPv6' claim to 'IPv6 must not be blocked; link-local suffices.'
Sources/assumptions
- Assumes commissioning a Matter-over-Thread (or Matter-over-Wi-Fi) accessory with a controller app and, for Thread, a reachable border router.
- Matter's IPv6 requirement is stated precisely: IPv6 must not be blocked; link-local IPv6 is sufficient for same-link devices — your ISP/router need not provide IPv6.
- Commissioning uses link-local multicast (mDNS) and, for Thread, controller-to-border-router reachability — so VLAN segmentation needs mDNS reflection, not collapsed VLANs.
Source-backed checks
HomeTechOps turns official docs and conservative safety rules into a shorter runbook. These links are the source trail for the page direction.