Troubliq

Smart-home fixes, step by step.

Category: Matter & Thread

Troubleshoot Matter and Thread pairing, unavailable devices, border routers, credentials, networks, and Home Assistant compatibility safely.

  • HomeKit device says already paired in Home Assistant: safe recovery without losing setup

    HomeKit device says already paired in Home Assistant: safe recovery without losing setup

    Direct answer: A HomeKit device usually reports “already paired” because it still belongs to Apple Home, another HomeKit controller, or a previous Home Assistant pairing record. HomeKit accessories generally accept only one controller pairing at a time. First identify the current owner, remove the accessory from that controller, wait for it to become discoverable, and pair it with Home Assistant’s HomeKit Device integration. Factory reset is a last resort because it can erase Wi-Fi or Thread credentials, scenes, vendor settings, and automations.

    Symptoms and scope

    • Home Assistant discovers the accessory but pairing fails with an already-paired or unavailable message.
    • The HomeKit code is accepted, then setup stops.
    • The device still appears in Apple Home or another Home Assistant installation.
    • A restored Home Assistant instance sees the accessory but cannot control it.
    • The accessory was removed from Apple Home but does not appear in Home Assistant.
    • A Thread accessory keeps returning to an old Thread network.

    This guide concerns importing a physical HomeKit accessory into Home Assistant with the HomeKit Device integration, formerly called HomeKit Controller. It is different from HomeKit Bridge, which exports Home Assistant entities to Apple Home. Confusing the two integrations can send troubleshooting in the wrong direction.

    How HomeKit ownership works

    A HomeKit accessory establishes an encrypted pairing relationship with one controller. The controller might be an Apple Home, Home Assistant, or another compatible ecosystem. Adding a device to Apple Home and then trying to import it directly into Home Assistant without removing it from Apple Home normally fails because the accessory is still owned.

    The official Home Assistant documentation describes a useful Wi-Fi workflow: use Apple Home or the manufacturer’s app to place the device on the local network, then remove it from Apple Home. Removing it opens the HomeKit pairing again while the accessory may remain connected to Wi-Fi. Home Assistant can then discover and pair it locally.

    Thread devices require extra care. Removing a device from Apple Home without resetting it can leave its Thread credentials intact, allowing Home Assistant to discover it over the existing Apple Thread network. Resetting it may erase those credentials and require Bluetooth commissioning or provisioning onto Home Assistant’s preferred Thread network.

    Before you begin

    1. Find the eight-digit HomeKit pairing code on the device, packaging, manual, or display.
    2. Record the device’s current name, room, vendor app account, and automations.
    3. Confirm whether it connects through Wi-Fi, Ethernet, Bluetooth, or Thread.
    4. Back up Home Assistant before removing an existing integration or changing Thread networks.
    5. If it controls a lock, garage door, alarm, valve, heater, or other safety-sensitive equipment, keep the manufacturer’s supported control method available throughout the change.

    Home Assistant’s documentation states that a lost HomeKit pairing code cannot be recovered by Home Assistant. Contact the manufacturer if the code is missing. Do not repeatedly guess codes; some accessories impose timeouts.

    Step 1: Make sure you are using the right integration

    Open Settings → Devices & services. A discovered accessory intended for import should appear under HomeKit Device. HomeKit Bridge is not the pairing destination for a physical accessory; it exposes existing Home Assistant entities to Apple Home.

    If the accessory already exists as a vendor integration—such as a local manufacturer integration—decide which method you actually want. Do not pair through multiple paths merely to fix discovery. Duplicate integrations can create duplicate entities and conflicting automations.

    Step 2: Identify the controller that currently owns the accessory

    Check Apple Home, any previous Home Assistant server, family members’ homes, and vendor gateways. A device visible in Apple Home is paired even if it is offline. If you migrated Home Assistant, the old instance or an incomplete restore may still hold the pairing relationship.

    Do not delete the Home Assistant device entry first unless you are certain the accessory can be unpaired or reset. Deleting the controller record while the accessory retains its pairing can leave the two sides out of sync.

    Step 3: Remove it cleanly from Apple Home

    For a Wi-Fi or Ethernet accessory currently in Apple Home:

    1. Confirm it is online in Apple Home.
    2. Record any Apple Home scenes or automations using it.
    3. Use Apple Home’s remove-accessory action.
    4. Keep the accessory powered and connected to the same LAN as Home Assistant.
    5. Wait several minutes for HomeKit discovery to update.
    6. Check Home Assistant’s discovered integrations again.

    The important distinction is remove versus factory reset. Removal ends Apple Home’s controller pairing. A reset also clears the accessory’s local configuration and may be unnecessary for an IP device.

    Step 4: Check local discovery

    HomeKit IP accessories are normally discovered through local multicast DNS. Being able to ping the device does not prove mDNS can cross a VLAN, guest network, wireless isolation boundary, VPN, or container network. Place Home Assistant and the accessory on the same local network temporarily if possible.

    Check these conditions:

    • Client isolation or guest-network isolation is disabled for the test.
    • UDP multicast traffic is not blocked between the relevant interfaces.
    • The Home Assistant host has normal local-network access.
    • A container or VM network exposes multicast correctly.
    • No stale DNS override sends the accessory or Home Assistant through a public route.

    Change one network condition at a time. Avoid permanently opening broad inter-VLAN access just to make discovery work; a properly scoped mDNS reflector and the required device traffic are safer.

    Step 5: Pair an IP accessory

    1. Open the discovered HomeKit Device card in Settings → Devices & services.
    2. Select Configure.
    3. Enter the HomeKit code exactly as printed.
    4. Wait for the accessory to exchange keys and create entities.
    5. Assign it to an area and finish setup.

    If the code fails immediately, confirm you are using the HomeKit code rather than a Matter code, serial number, Wi-Fi password, or vendor setup PIN. Preserve the dashes or remove them only as the interface requests.

    Step 6: Handle Bluetooth accessories

    A Bluetooth HomeKit accessory must be within reliable radio range of Home Assistant or a supported ESPHome Bluetooth proxy. Battery devices may need to be awakened during pairing. Bluetooth pairing can take longer than IP pairing, so do not restart the accessory repeatedly while the exchange is active.

    Verify the Bluetooth adapter or proxy works with another known device. If the accessory was previously paired or joined to Thread, the official documentation advises resetting it before Bluetooth-based setup so old controller or Thread information does not interfere. Follow the manufacturer’s exact reset sequence and confirm the device re-enters pairing mode.

    Step 7: Handle Thread accessories without destroying the working mesh

    If a HomeKit-over-Thread accessory currently works in Apple Home and you want it to stay on Apple’s Thread network, remove it from Apple Home but do not reset it. The device can retain its Thread details and may then be discovered by Home Assistant over Thread. Pair it using the printed HomeKit code.

    If instead you want to move it onto Home Assistant’s preferred Thread network, first verify a working border router and known credentials. Pair through Bluetooth if required, then use the device configuration to provision the preferred Thread credentials. Do not delete Thread datasets or reset border routers to solve a single accessory problem.

    Step 8: Recover after a Home Assistant migration or partial restore

    A complete Home Assistant backup normally carries integration configuration, but a partial restore or manually rebuilt instance may not contain the old HomeKit pairing keys. The accessory can remain paired to keys the new instance does not have.

    1. Confirm whether a complete backup from the working instance exists.
    2. Prefer restoring the relevant known-good backup over resetting every accessory.
    3. If restoration is not possible, remove the accessory from its current controller through the supported UI.
    4. Reset only the individual accessory that cannot be cleanly unpaired.
    5. Pair one device and verify stability before repeating the process.

    If pairing succeeds but no entities appear

    Home Assistant supports many common HomeKit domains, including lights, switches, locks, climate devices, covers, fans, sensors, and alarms. The official documentation notes that an unsupported device type may appear in the Device Registry without creating usable entities. That is different from a pairing failure.

    Check the device page, disabled entities, diagnostic entities, and integration documentation. Do not repeatedly remove and re-pair a successfully paired accessory because its service type is unsupported.

    How to verify the fix

    1. Confirm the accessory is listed under HomeKit Device.
    2. Operate one non-destructive control in Home Assistant.
    3. Physically verify the device responds.
    4. Change the device state outside Home Assistant and confirm a push update returns.
    5. Restart Home Assistant once and confirm the device reconnects.
    6. For Thread, verify the reported Thread status after the mesh settles.

    Rollback and recovery

    If Home Assistant pairing fails after clean removal, you may re-add the accessory to Apple Home using its original pairing code, provided it remains in pairing mode. If the accessory was factory-reset, restore vendor settings and automations deliberately. For a security device, follow the manufacturer’s recovery process and test all physical safety functions.

    When to escalate

    Collect the Home Assistant version, device manufacturer and model, firmware, connection type, integration diagnostics, and relevant logs with secrets removed. Contact the manufacturer if the pairing code is missing or the reset process does not reopen pairing. Report reproducible integration failures to Home Assistant only after confirming the device is unpaired and discoverable.

    Prevention

    • Store HomeKit codes securely before installation.
    • Document which controller owns each accessory.
    • Back up Home Assistant before migrations.
    • Choose a Thread network intentionally and keep its credentials recoverable.
    • Avoid unnecessary factory resets.
    • Do not confuse HomeKit Device with HomeKit Bridge.

    Source

    Last reviewed: September 8, 2026.

    Related Troubliq guides: Thread credentials are synced but commissioning fails, Matter device pairs but shows unavailable, and the safe diagnostic method.

    Decision guide: remove, reset, or restore?

    Choose the least disruptive path that matches the evidence. If the accessory is visible and controllable in Apple Home, remove it from Apple Home first; do not reset it. If it is an IP accessory that was added to Wi-Fi through Apple Home, keep it powered after removal so it can remain on the network and advertise for a new controller. If it is a Thread accessory that should remain on an Apple Thread network, removal without reset preserves the best chance of retaining those network credentials.

    Use a factory reset only when the accessory cannot be removed from the controller that owns it, its previous controller no longer exists and no usable backup remains, or the manufacturer explicitly requires a reset to reopen pairing. Use restoration instead when the problem began after migrating Home Assistant and a complete backup from the working controller is available. Restoration can recover the pairing keys and prevent a house-wide reset campaign.

    After each action, wait for discovery to settle and test before escalating. Removing, resetting, restoring, and changing VLAN rules at the same time destroys the evidence needed to identify the real cause.

    How to preserve the original controller relationship before a reset

    Before resetting an accessory, identify every place where it may already be paired. Check Apple Home on each household member’s device, any older Home Assistant installation, vendor apps, and previous hubs that may still be powered. A HomeKit pairing record belongs to the controller’s Home data, not merely to the phone used during setup. Removing an app, changing phones, or deleting an integration card does not necessarily release the accessory.

    If the accessory still responds through Apple Home, record its room, name, scenes, automations, and any bridge or Thread border router involved. Remove it from the owning controller while it is powered and reachable, then wait for that removal to complete before attempting another pairing. This clean removal is preferable to a factory reset because it gives the controller an opportunity to discard its relationship and can preserve network settings that the accessory is designed to retain.

    For a bridged accessory, determine whether the HomeKit code belongs to the bridge rather than the individual endpoint. Resetting a child bulb, sensor, or switch may not clear the bridge-level pairing and can create extra recovery work. Consult the manufacturer’s instructions for the exact model because button sequences, LED meanings, and reset depths differ.

    Network checks when the pairing code is accepted but setup still fails

    An “already paired” message can be followed by a second problem: the old pairing is cleared, but discovery or communication fails. Confirm that the Home Assistant host and accessory can exchange local traffic. Multicast DNS must cross the relevant Wi-Fi or VLAN boundary, client isolation must not block peers, and firewall rules must permit the local path. For Thread accessories, confirm that a compatible border router is operational and that the phone used for commissioning has Bluetooth and local-network permissions.

    Do not merge these stages into one diagnosis. First prove that ownership was released; then investigate discovery, networking, or Thread credentials. This separation prevents repeated resets from hiding the actual fault.

    Evidence to collect for a useful support request

    If the accessory remains unavailable, record the exact model, firmware, connection type, Home Assistant version, installation type, integration name, and the complete redacted error. State whether the device is visible in Apple Home, the vendor app, Home Assistant discovery, or a network scan. Include the order of removal and pairing attempts, but never share HomeKit setup codes, QR codes, Wi-Fi credentials, diagnostic archives containing secrets, or account tokens.

    Find your next troubleshooting path

    Use the related guide that matches the next confirmed layer of the failure. Avoid changing unrelated systems at the same time.

  • Thread credentials are synced but Matter commissioning still fails in Home Assistant

    Thread credentials are synced but Matter commissioning still fails in Home Assistant

    Direct answer: Confirm that Home Assistant knows the selected Thread network credentials, that the phone has the same credentials, and that IPv6 and local discovery work between Home Assistant, the phone, and the border router.

    Symptoms

    • Commissioning times out after scanning the Matter code.
    • The app says a Thread border router is required even though one is running.
    • Home Assistant and the phone prefer different Thread networks.

    Prerequisites

    Update Home Assistant and its Companion app, enable Bluetooth on the phone, place the device in pairing mode, and keep the phone on the same local Wi-Fi as the border router.

    Diagnostic steps

    1. Open Settings → Devices & services → Thread → Configure.
    2. Identify the preferred network. Home Assistant can only prefer a network whose credentials it knows.
    3. In the Companion app, use its Thread credential sync or send-credentials action for your platform.
    4. Reopen the Thread panel and confirm Home Assistant and the phone reference the same network.
    5. Check the OpenThread Border Router app status and logs.
    6. Verify IPv6 works on the Home Assistant host, router, and any container or VM layer.
    7. Return the device to pairing mode and retry nearby.

    Verify the fix

    The device should finish commissioning, appear under Matter, respond to a command, and remain reachable after several minutes.

    Recovery and rollback

    Do not delete Thread datasets or reset border routers as an early step. Those actions can strand existing devices. If retrying, remove only the failed partial device entry and follow the manufacturer’s pairing-mode instructions.

    Prevention

    Choose one preferred Thread network intentionally, keep credential copies synchronized, and document which border routers belong to it.

    Video overview: understand Matter’s network requirements

    Vaclav Chaloupka explains the moving parts behind Matter in Home Assistant and shows the commissioning flow. The overview is especially helpful for understanding why the phone, Home Assistant host, Thread border router, local IPv6 network, and shared credentials must all agree before a Matter-over-Thread device can join reliably.

    Video: “Matter in Home Assistant: It is dead simple (if you know how — explained in the video)” by Vaclav Chaloupka. Embedded from the creator’s original YouTube upload.

    Sources

    Last reviewed: September 4, 2026.

    Related Troubliq guides

    Find your next troubleshooting path

    Use the related guide that matches the next confirmed layer of the failure. Avoid changing unrelated systems at the same time.

    Detailed evidence checklist for Thread credentials are synced but Matter commissioning still fails in Home Assistant

    Before another change, create a short incident record. Include the exact time the symptom appeared, what the system was doing, the last successful action, and every update or network change made during the previous day. Record the Home Assistant release, installation type, integration version, device model, firmware, connection method, current address, and relevant entity IDs. Screenshots are useful for visible states, but copy the exact error text because screenshots may crop the detail needed to search logs.

    Compare the failing item with one known-good item that uses the same path. If both fail, move outward toward shared services such as the integration, coordinator, add-on, DNS, router, cloud account, or Home Assistant host. If only one fails, stay close to that device: power, signal, address, credentials, firmware, permissions, and configuration. This comparison prevents a single-device problem from turning into an unnecessary system-wide rebuild.

    Network tests that prove the failing layer

    Use tests in layers. Confirm the address is current in the router or DHCP server. Confirm the Home Assistant host or container resolves the same name and reaches the intended address. Then test the actual documented service, port, or protocol. A dashboard loading on a phone proves only the phone’s path. A successful ping proves basic reachability, not authentication, WebSocket upgrades, multicast discovery, API encryption, event subscriptions, or application permissions.

    For segmented networks, document source VLAN, destination VLAN, direction, protocol, and port before editing a firewall rule. Test the smallest temporary exception and remove it if it did not help. Discovery traffic and control traffic may use different mechanisms. Seeing a device in discovery does not prove Home Assistant can maintain a working session.

    Configuration comparison procedure

    Export or photograph the current configuration without exposing secrets. Compare it with official documentation field by field: host, port, account, region, project, encryption setting, device identifier, and optional switches. Watch for trailing spaces, uppercase versus lowercase account names, obsolete hostnames, restored encryption keys, or an account belonging to the wrong home or region.

    Use Reconfigure or Reauthenticate before deleting an integration. Preserve entity IDs and note every automation, dashboard, script, scene, or helper that refers to them. If replacement becomes necessary, take a backup and map old entities to replacements. That makes rollback controlled rather than leaving broken references.

    Power, radio, and timing checks

    Do not interpret every unavailable state as software failure. Low-voltage devices may stay partly online while unstable power causes resets. Battery devices sleep and report on their own schedule. Wi-Fi and Bluetooth devices can associate yet fail at the application layer. Zigbee and Z-Wave devices depend on routes, radio conditions, and powered repeaters. Match the test to the technology instead of repeatedly pressing Reload.

    Allow enough time after each test. Cloud polling, sleepy devices, retained MQTT messages, mesh repair, Bluetooth advertisements, and DHCP changes do not update instantly. Define the expected interval, then wait through at least two normal cycles. If availability returns briefly, capture the next disconnect in logs instead of declaring success.

    Log-reading workflow

    Synchronize clocks and reproduce the problem once. Start with the first warning or error at that timestamp; later messages may be consequences. Group errors by layer: name resolution, timeout, refused connection, TLS certificate, unauthorized account, invalid token, missing permission, unsupported capability, malformed payload, device timeout, or rate limit. Each group suggests a different next action.

    Turn debug logging off after reproduction. Large files consume storage and bury the event. Redact tokens, passwords, keys, email addresses, public addresses, precise locations, and unnecessary unique identifiers. Keep the unredacted copy private for comparison with later tests.

    Safe change order

    1. Correct time, power, cabling, or an obviously stale address.
    2. Reload only the affected integration when documentation supports it.
    3. Use Reconfigure or Reauthenticate without deleting the entry.
    4. Restart only the affected device or add-on during a safe window.
    5. Restart Home Assistant when several components share the symptom or a change requires it.
    6. Update software after reading release notes and preserving rollback.
    7. Delete, exclude, reset, or rebuild only after safer checks prove it necessary.

    Post-repair validation

    Verify both directions. Confirm Home Assistant receives a fresh state, send one harmless command, and confirm the physical response. Check the returned state, logbook, history, and automation trace. Restart the affected component and verify automatic reconnection. During a maintenance window, confirm the repair survives a normal Home Assistant restart.

    Monitor long enough to cover the original pattern. If failure occurred overnight, after DHCP renewal, deep sleep, or token expiry, a five-minute test is insufficient. Record the confirmed cause and exact corrective change. Remove temporary firewall rules, extra logging, duplicate test integrations, and unused credentials.

    When to stop and escalate

    Stop if hardware overheats, power is unstable, storage reports errors, a controller backup fails, credentials are rejected across services, or firmware may be damaged. Escalate with versions, timestamps, topology, redacted logs, the first meaningful error, and results of each safe test. Do not repeat destructive steps while waiting for help.

    A strong report answers four questions: What still works? What exactly fails? What changed immediately beforehand? Which test most clearly separates the causes? Those answers help maintainers diagnose the correct layer.

    Checkpoint 1 — preferred Thread dataset: reproduce the original symptom once and record the result at the expected update interval. Compare it with the last known-good behavior. Keep the change only when this specific checkpoint improves the failure without creating a new warning; otherwise restore the previous value.Validation note 1: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Verification checkpoint 2 focuses on phone credentials. Observe the relevant state, event or log through two normal cycles and write down the timestamp. If the result is unchanged, undo the experimental change before testing another layer so the diagnosis remains controlled and reversible.Validation note 2: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    For checkpoint 3, inspect Bluetooth handoff rather than relying on the dashboard icon alone. Confirm the expected input, the system response and the returned state. Preserve the evidence, reverse any ineffective adjustment and move to the next checkpoint only after the current result is clear.Validation note 3: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Checkpoint 4 — Matter server: reproduce the original symptom once and record the result at the expected update interval. Compare it with the last known-good behavior. Keep the change only when this specific checkpoint improves the failure without creating a new warning; otherwise restore the previous value.Validation note 4: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Verification checkpoint 5 focuses on border router. Observe the relevant state, event or log through two normal cycles and write down the timestamp. If the result is unchanged, undo the experimental change before testing another layer so the diagnosis remains controlled and reversible.Validation note 5: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    For checkpoint 6, inspect local IPv6 rather than relying on the dashboard icon alone. Confirm the expected input, the system response and the returned state. Preserve the evidence, reverse any ineffective adjustment and move to the next checkpoint only after the current result is clear.Validation note 6: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Checkpoint 7 — multicast discovery: reproduce the original symptom once and record the result at the expected update interval. Compare it with the last known-good behavior. Keep the change only when this specific checkpoint improves the failure without creating a new warning; otherwise restore the previous value.Validation note 7: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Verification checkpoint 8 focuses on fabric membership. Observe the relevant state, event or log through two normal cycles and write down the timestamp. If the result is unchanged, undo the experimental change before testing another layer so the diagnosis remains controlled and reversible.Validation note 8: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    For checkpoint 9, inspect multi-admin sharing rather than relying on the dashboard icon alone. Confirm the expected input, the system response and the returned state. Preserve the evidence, reverse any ineffective adjustment and move to the next checkpoint only after the current result is clear.Validation note 9: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Checkpoint 10 — commissioning logs: reproduce the original symptom once and record the result at the expected update interval. Compare it with the last known-good behavior. Keep the change only when this specific checkpoint improves the failure without creating a new warning; otherwise restore the previous value.Validation note 10: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Verification checkpoint 11 focuses on restart persistence. Observe the relevant state, event or log through two normal cycles and write down the timestamp. If the result is unchanged, undo the experimental change before testing another layer so the diagnosis remains controlled and reversible.Validation note 11: Recheck the symptom after a normal interval, compare it with the incident record, and document whether the latest change improved, worsened, or did not affect the failure. Restore the previous value when a test provides no benefit so unrelated changes do not accumulate.

    Map the commissioning path before resetting the device

    Matter commissioning can involve the phone, Home Assistant Companion app, Matter server, border router, Thread credentials, Bluetooth and the local IPv6 network. Identify which component owns the preferred Thread network and whether the phone has received the same operational dataset. Seeing credentials in one interface does not prove that the commissioning phone, Matter server and border router are using the same dataset.

    Confirm Bluetooth is enabled for the initial handoff, the phone is on the intended LAN and required app permissions are granted. Keep the phone and device near the border router during the test. Do not disable IPv6: Matter relies on IPv6 locally even when the internet connection is primarily IPv4.

    Distinguish a Thread attachment failure from a fabric failure

    If commissioning fails before the device joins Thread, examine border-router availability, dataset consistency and radio reachability. If the device joins Thread but cannot be added to Home Assistant, examine Matter-server logs, fabric state, multicast reachability and whether the device is already commissioned to another fabric. Multi-admin sharing should use the existing ecosystem’s share flow; repeatedly factory-resetting a working device can create stale entries without repairing the network.

    On segmented networks, confirm the phone, Home Assistant, Matter server and border-router discovery traffic can cross only the required trusted boundaries. Avoid broad firewall exceptions. Capture the timestamp of one commissioning attempt and align the Companion app, Matter server and border-router logs.

    Verify a durable Matter repair

    • The device appears once on the intended Matter fabric.
    • The Matter server reports the node as available after commissioning.
    • Commands and state updates work after Bluetooth is turned off.
    • The device survives a normal restart of Home Assistant and the Matter server.
    • Thread diagnostics show attachment to the intended network.

    If another ecosystem already controls the device, test its official multi-admin sharing procedure before erasing it. Record the device model, firmware, border-router model, Thread dataset source, Companion app platform and the precise commissioning stage that fails. Those facts determine whether the next investigation belongs in Thread transport, Matter fabric management or the vendor implementation.

  • All Matter devices unavailable in Home Assistant

    All Matter devices unavailable in Home Assistant

    Quick diagnosis

    Direct answer: If all Matter devices are unavailable in Home Assistant, investigate the shared Matter Server and local IPv6 path before resetting any accessory. When only one device is unavailable, focus on that device’s power, Wi-Fi or Thread path, firmware, and fabric record. Do not remove or factory-reset devices until the shared layers are proven healthy.

    Try this first: Confirm the device has power and still works in its native app → check whether other Matter devices are also unavailable → verify the Matter Server is running → then check IPv6, multicast, Wi-Fi or Thread reachability.

    Important: If the device works in another ecosystem but not Home Assistant, concentrate on the Home Assistant/Matter Server path rather than immediately re-pairing the accessory.

    Applies to

    Home Assistant installations using the Matter integration with Wi-Fi or Thread devices. Menu names and behavior can change between releases; record your Home Assistant Core, Matter Server, border-router, and device firmware versions.

    1. Preserve the working evidence

    • Do not factory-reset or remove the device yet.
    • Save the exact Home Assistant error and the time it occurred.
    • Check whether one Matter device or every Matter device is unavailable.
    • Note any router, VLAN, firewall, border-router, credential, or software change.

    2. Separate device failure from controller failure

    Confirm that the device has power. If its manufacturer app can still control it, the device and at least one control path are alive. If all Matter devices fail together, investigate Home Assistant, Matter Server, and the network before individual devices.

    3. Check Home Assistant services

    Open Settings, then Devices & services. Confirm that the Matter integration is loaded and inspect its messages. Check the Matter Server add-on or service logs around the recorded failure time. Restart only the affected service once, then wait for discovery to settle before retesting.

    4. Verify local network reachability

    Matter depends on local IPv6 and multicast discovery. Confirm that Home Assistant and the device network can exchange local traffic. Guest isolation, client isolation, blocked multicast, strict VLAN rules, or a recent router change can break an otherwise valid pairing. Avoid broad firewall changes; test the smallest reversible rule and restore it if the result does not change.

    5. For Thread devices

    Confirm that the expected Thread border router is online and that Home Assistant is using the intended Thread credentials. Do not create a new Thread network simply because a device is unavailable; duplicate networks can make diagnosis harder.

    6. Re-interview before re-pairing

    After power, services, network, and border-router checks, reboot only the affected low-voltage device if its manufacturer instructions allow it. Removal and factory reset are last resorts because they can erase credentials and automations.

    Escalate safely

    Stop for overheating, swelling batteries, damaged wiring, smoke, sparks, or water near electricity. For a repeatable software failure, collect redacted logs, versions, device model, and the smallest reproduction before asking the manufacturer or Home Assistant community for help.

    Official sources

    Last reviewed: September 4, 2026.

    Find your next troubleshooting path

    Use the related guide that matches the next confirmed layer of the failure. Avoid changing unrelated systems at the same time.

    Confirm where “unavailable” begins

    Treat pairing and availability as separate stages. A successful Matter commission proves that the controller exchanged credentials and added the accessory to a fabric; it does not prove that Home Assistant can continue reaching the device afterward. Note whether the accessory becomes unavailable immediately, after several minutes, after a router restart, or only after Home Assistant restarts. That timing narrows the problem before you change anything.

    Check whether the same accessory remains controllable from another authorized ecosystem. If it works there but not in Home Assistant, focus on Home Assistant’s Matter integration and the path to its Matter server. If it disappears everywhere, focus on power, Wi-Fi or Thread connectivity, the border router, and the accessory itself. Do not remove it from every controller just to perform this comparison.

    Preserve evidence before re-pairing

    Open the device page and record the exact availability state, diagnostic entities, firmware version, and the time of the last successful update. Save relevant Matter Server and Home Assistant logs around that timestamp. Redact fabric identifiers, Wi-Fi credentials, setup codes, certificates, tokens, and public IP addresses before sharing logs.

    Create a current Home Assistant backup before changing integrations or deleting devices. Also record which ecosystem commissioned the device first and whether multi-admin sharing was used. Those ownership details matter because removing the accessory from the wrong controller can invalidate the sharing path and turn a recoverable connectivity problem into a new commissioning problem.

    Check the Matter server and integration

    If the problem started after updating Home Assistant 2026.9, also use our Matter Network Map missing or unsupported diagnostic to separate a Core-version issue from a Matter Server or fabric-visibility issue.

    Verify that the Matter integration is loaded and that its server is running without a repeating connection or startup error. A restart may temporarily hide a race or network problem, so use it as a controlled test rather than assuming that a successful restart is a permanent repair. After restarting, observe whether the device returns on its own and how long it stays available.

    Compare the device’s unavailable timestamp with Home Assistant Core, Matter Server, add-on, container, or host restarts. If many Matter devices fail together, investigate the shared server and network path first. If one device fails while the rest remain stable, prioritize that accessory’s power, firmware, radio path, and individual fabric record.

    Verify local network requirements

    Matter depends on reliable local IP communication. Confirm that Home Assistant, the Matter server, the accessory, and any Thread border router can participate in the required local network traffic. VLAN rules, client isolation, multicast filtering, broken IPv6, or a container network change can allow commissioning to begin yet prevent dependable operation afterward.

    Do not open inbound internet ports as a troubleshooting shortcut. Matter control is designed around authenticated local communication, and exposing Home Assistant or the Matter server does not repair local discovery. Test temporary firewall or VLAN changes narrowly, document them, and restore the original policy after each comparison.

    Separate Wi-Fi Matter from Thread Matter

    For a Wi-Fi Matter accessory, confirm that it still has power, a valid lease, and a stable connection to the intended SSID. Check for band steering, access-point roaming, client isolation, or DHCP changes near the time of failure. A reservation can make diagnosis easier, but do not assume that changing the address alone fixes the underlying reachability problem.

    For a Thread accessory, verify that at least one compatible Thread border router is online and that the Thread network used during commissioning is still available. More border routers do not automatically repair mismatched credentials or separate Thread networks. Confirm the network identity before resetting, migrating, or creating a new Thread network.

    Use a controlled recovery sequence

    Start with the least disruptive action: restore power or network reachability, wait for reconnection, reload only the affected integration if appropriate, and then restart the smallest relevant service. Test the device after each action. Changing several layers at once removes the evidence needed to identify what actually restored availability.

    Re-interviewing, removing, or factory-resetting the device belongs near the end of the sequence. Before removal, check whether dashboards, scenes, automations, and voice assistants depend on the current entity and device identifiers. A newly commissioned record may not preserve those references even when the physical accessory is the same.

    Verify the repair

    After the device returns, test control and state reporting from Home Assistant several times. Then restart the accessory if practical, restart the relevant Matter service during a maintenance window, and observe the device long enough to cover the interval that previously triggered the failure. Availability for a few seconds is not enough evidence of a stable repair.

    Document the confirmed cause, the single change that resolved it, and the versions involved. Keep the backup and sanitized logs until the device survives normal network and service restarts. If the failure returns, that record prevents repeated resets and gives the vendor or Home Assistant community a reproducible starting point.

    When to escalate

    Escalate with a concise evidence package when the accessory repeatedly becomes unavailable after the same event, the Matter server reports a reproducible error, or current firmware does not restore stable operation. Include sanitized log timestamps, Home Assistant and Matter Server versions, accessory model and firmware, connection type, border-router model when applicable, and the controlled tests already completed. This gives the vendor or community enough information to distinguish an accessory defect from a platform or network regression without asking you to reset the device again.

    Detailed evidence checklist for Matter device pairs but shows unavailable in Home Assistant

    Before another change, create a short incident record. Include the exact time the symptom appeared, what the system was doing, the last successful action, and every update or network change made during the previous day. Record the Home Assistant release, installation type, integration version, device model, firmware, connection method, current address, and relevant entity IDs. Screenshots are useful for visible states, but copy the exact error text because screenshots may crop the detail needed to search logs.

    Compare the failing item with one known-good item that uses the same path. If both fail, move outward toward shared services such as the integration, coordinator, add-on, DNS, router, cloud account, or Home Assistant host. If only one fails, stay close to that device: power, signal, address, credentials, firmware, permissions, and configuration. This comparison prevents a single-device problem from turning into an unnecessary system-wide rebuild.

    Network tests that prove the failing layer

    Use tests in layers. Confirm the address is current in the router or DHCP server. Confirm the Home Assistant host or container resolves the same name and reaches the intended address. Then test the actual documented service, port, or protocol. A dashboard loading on a phone proves only the phone’s path. A successful ping proves basic reachability, not authentication, WebSocket upgrades, multicast discovery, API encryption, event subscriptions, or application permissions.

    For segmented networks, document source VLAN, destination VLAN, direction, protocol, and port before editing a firewall rule. Test the smallest temporary exception and remove it if it did not help. Discovery traffic and control traffic may use different mechanisms. Seeing a device in discovery does not prove Home Assistant can maintain a working session.

    Configuration comparison procedure

    Export or photograph the current configuration without exposing secrets. Compare it with official documentation field by field: host, port, account, region, project, encryption setting, device identifier, and optional switches. Watch for trailing spaces, uppercase versus lowercase account names, obsolete hostnames, restored encryption keys, or an account belonging to the wrong home or region.

    Use Reconfigure or Reauthenticate before deleting an integration. Preserve entity IDs and note every automation, dashboard, script, scene, or helper that refers to them. If replacement becomes necessary, take a backup and map old entities to replacements. That makes rollback controlled rather than leaving broken references.

    Power, radio, and timing checks

    Do not interpret every unavailable state as software failure. Low-voltage devices may stay partly online while unstable power causes resets. Battery devices sleep and report on their own schedule. Wi-Fi and Bluetooth devices can associate yet fail at the application layer. Zigbee and Z-Wave devices depend on routes, radio conditions, and powered repeaters. Match the test to the technology instead of repeatedly pressing Reload.

    Allow enough time after each test. Cloud polling, sleepy devices, retained MQTT messages, mesh repair, Bluetooth advertisements, and DHCP changes do not update instantly. Define the expected interval, then wait through at least two normal cycles. If availability returns briefly, capture the next disconnect in logs instead of declaring success.

    Log-reading workflow

    Synchronize clocks and reproduce the problem once. Start with the first warning or error at that timestamp; later messages may be consequences. Group errors by layer: name resolution, timeout, refused connection, TLS certificate, unauthorized account, invalid token, missing permission, unsupported capability, malformed payload, device timeout, or rate limit. Each group suggests a different next action.

    Turn debug logging off after reproduction. Large files consume storage and bury the event. Redact tokens, passwords, keys, email addresses, public addresses, precise locations, and unnecessary unique identifiers. Keep the unredacted copy private for comparison with later tests.

    Safe change order

    1. Correct time, power, cabling, or an obviously stale address.
    2. Reload only the affected integration when documentation supports it.
    3. Use Reconfigure or Reauthenticate without deleting the entry.
    4. Restart only the affected device or add-on during a safe window.
    5. Restart Home Assistant when several components share the symptom or a change requires it.
    6. Update software after reading release notes and preserving rollback.
    7. Delete, exclude, reset, or rebuild only after safer checks prove it necessary.

    Post-repair validation

    Verify both directions. Confirm Home Assistant receives a fresh state, send one harmless command, and confirm the physical response. Check the returned state, logbook, history, and automation trace. Restart the affected component and verify automatic reconnection. During a maintenance window, confirm the repair survives a normal Home Assistant restart.

    Monitor long enough to cover the original pattern. If failure occurred overnight, after DHCP renewal, deep sleep, or token expiry, a five-minute test is insufficient. Record the confirmed cause and exact corrective change. Remove temporary firewall rules, extra logging, duplicate test integrations, and unused credentials.

    When to stop and escalate

    Stop if hardware overheats, power is unstable, storage reports errors, a controller backup fails, credentials are rejected across services, or firmware may be damaged. Escalate with versions, timestamps, topology, redacted logs, the first meaningful error, and results of each safe test. Do not repeat destructive steps while waiting for help.

    A strong report answers four questions: What still works? What exactly fails? What changed immediately beforehand? Which test most clearly separates the causes? Those answers help maintainers diagnose the correct layer.