Adding nodes further from the hub results in inclusion failures and dead nodes that can't be removed

I’ll preface this by saying I’m very new to Home Assistant and using it with ZWave devices, so please bear with me. I have experience with ZWave devices on the Samsung SmartThings platforms but am currently migrating my devices to Home Assistant. All the devices have been working properly on the SmartThings controller.

I’ve excluded all my devices from Samsung and am now adding them to the Home Assistant network.

Everything had been going great, and I have about 23 devices moved over, but have started to run into problems adding devices which are on the edge of the range. The hub detects the devices and begins the process of including it, but then something in the interview process goes wrong and the node isn’t properly added, but it also doesn’t outright fail and I end up with an incomplete dead node that is stuck in some strange state with numbered node in my table in Z-wave JS UI, with “Unknown” device/manufacturer. They have the circular spinning icon like something is being updated but that never completes, and they are never removed. Even after days, these do not go away. I’ve tried restarting Home Assistant and shutting down Home Assistant fully unplugging the controller and restarting,

I’ve also tried removing them with the “Remove Failed Node” command in Z-Wave JS UI but the command never completes and doesn’t remove them.

The first time I call “Remove Failed Node” I eventually get a time out error:

2025-02-12 17:35:07.122 INFO Z-WAVE: Calling api removeFailedNode with args: [ 2, [length]: 1 ]
2025-02-13T00:35:07.123Z CNTRLR » [Node 002] pinging the node...
2025-02-12 17:35:21.177 INFO APP: GET /health/zwave 301 0.615 ms - 162
2025-02-13T00:35:28.549Z CNTRLR   [Node 002] The node did not respond after 1 attempts, it is presumed dead
2025-02-13T00:35:28.551Z CNTRLR   [Node 002] ping failed: The node did not acknowledge the command (ZW0204)
2025-02-12 17:35:51.222 INFO APP: GET /health/zwave 301 0.675 ms - 162
2025-02-12 17:35:58.566 INFO Z-WAVE: Timeout while waiting for a callback from the controller (ZW0200) removeFailedNode undefined
2025-02-12 17:36:21.282 INFO APP: GET /health/zwave 301 0.548 ms - 162
2025-02-12 17:36:51.342 INFO APP: GET /health/zwave 301 0.606 ms - 162
2025-02-12 17:36:52.130 INFO Z-WAVE: Removing user callbacks

Any subsequent time I call the “Remove Failed Node” I get:

2025-02-12 17:38:51.091 INFO Z-WAVE: Calling api removeFailedNode with args: [ 2, [length]: 1 ]
2025-02-13T00:38:51.091Z CNTRLR » [Node 002] pinging the node...
2025-02-12 17:38:51.578 INFO APP: GET /health/zwave 301 0.680 ms - 162
2025-02-13T00:39:12.623Z CNTRLR   [Node 002] The node did not respond after 1 attempts, it is presumed dead
2025-02-13T00:39:12.624Z CNTRLR   [Node 002] ping failed: The node did not acknowledge the command (ZW0204)
2025-02-13T00:39:12.635Z CNTRLR   The controller response indicated failure after 1/3 attempts. Scheduling next 
                                  try in 100 ms.
2025-02-13T00:39:12.742Z CNTRLR   The controller response indicated failure after 2/3 attempts. Scheduling next 
                                  try in 1100 ms.
2025-02-12 17:39:13.853 INFO Z-WAVE: The node removal process could not be started due to the following reasons:
· The node removal process is currently busy (ZW0360) removeFailedNode undefined
2025-02-12 17:39:21.626 INFO APP: GET /health/zwave 301 0.745 ms - 162
2025-02-12 17:39:27.661 INFO Z-WAVE: Removing user callbacks

I continue to get that error until I reboot Home Assistant, then I get the time out error again once and I’m back to get the currently busy message.

Is there any way to remove these that does not require me to wipe the controller and start over? I’m concerned that I’ll just end up in the same state again if one node fails to add for some reason and I’d like to find a way to address them that doesn’t involve starting over.

Related: I’m not sure what is going on with the nodes getting partially added. As I understand it the best practice now is not to move the hub closer to the device when including them and they should be able to be successfully added via hops through existing devices. In the early days of ZWave the only way to get nodes added was to bring the device and the hub close together.

Thank you!

System setup:

  • Home Assistant running on a Raspberry PI 5
  • Core v2025.3.3 / Supervisor v2025.02.0 / OS v14.2 / Frontend 20250210.0
    *Z-Wave JS Driver Version:14.3.8, Server version: 1.40.2
  • Z-Wave JS UI 9.30.1
  • Zooz ZST39 LR controller / FW v1.50 / SDK v7.22.1
Failed Node Debug JS:
{
  "id": 2,
  "name": "",
  "loc": "",
  "values": [],
  "groups": [],
  "neighbors": [],
  "ready": false,
  "available": false,
  "hassDevices": {},
  "failed": false,
  "inited": false,
  "eventsQueue": [
    {
      "time": "2025-02-13T00:29:41.640Z",
      "event": "dead",
      "args": [
        0
      ]
    },
    {
      "time": "2025-02-13T00:29:41.644Z",
      "event": "interview failed",
      "args": [
        {
          "errorMessage": "The node is dead",
          "isFinal": true
        }
      ]
    }
  ],
  "status": "Dead",
  "interviewStage": "ProtocolInfo",
  "priorityReturnRoute": {},
  "customReturnRoute": {},
  "customSUCReturnRoutes": [],
  "applicationRoute": false,
  "hexId": "0xXXXX 0xXXXX-0xXXXX",
  "dbLink": "https://devices.zwave-js.io/?jumpTo=0xXXXX:0xXXXX:0xXXXX:0.0",
  "productLabel": "Unknown product 0xXXXX",
  "productDescription": "0xXXXX",
  "manufacturer": "Unknown manufacturer 0xXXXX",
  "protocolVersion": 3,
  "nodeType": 1,
  "endpointsCount": 0,
  "endpoints": [
    {
      "index": 0,
      "label": "Root Endpoint",
      "deviceClass": {
        "basic": 4,
        "generic": 17,
        "specific": 7
      }
    }
  ],
  "supportsSecurity": false,
  "supportsBeaming": true,
  "isControllerNode": false,
  "isListening": false,
  "isFrequentListening": "1000ms",
  "isRouting": true,
  "keepAwake": false,
  "maxDataRate": 100000,
  "deviceClass": {
    "basic": 4,
    "generic": 17,
    "specific": 7
  },
  "lastActive": null,
  "firmwareCapabilities": {
    "firmwareUpgradable": false
  },
  "protocol": 0,
  "deviceId": "undefined-undefined-undefined",
  "statistics": {
    "commandsTX": 0,
    "commandsRX": 0,
    "commandsDroppedRX": 0,
    "commandsDroppedTX": 0,
    "timeoutResponse": 0
  },
  "_name": "NodeID_2",
  "prioritySUCReturnRoute": false
}


Screen Shot 2025-02-12 at 17.21.42 PM
Screen Shot 2025-02-12 at 17.22.58 PM

When you select one of the failed nodes, you can click on the green “advanced” button. Under “Failed nodes” you can use the remove button/link to remove the device.

Nevermind. See you found the button already.

Perhaps you can try to remove it through from Z-Wave in the settings → devices and services? If you use that, that is.

Are the devices battery powered? Can you not take them closer to the controller and place them back, when the interview is done?

My experience is that unless the device supports NWI (Network Wide Inclusion) you have to have it close to the controller to add it. Z-wave plus devices at a minimum I believe.

These are hardwired devices, Smartwings roller shades. I can bring the hub to them though and I guess I’ll do that going forward to avoid this. It’s weird though that I can’t get rid of them. I also tried from the devices page. It removes them from there, but they come right back.

I wasn’t aware that it was a separate feature, I thought the newer Z-Wave versions all supported that. The roller blinds are pretty bare bones and I’m guessing you’re right about the NWI. I’ll bring the hub to them going forward. Now if I could just get rid of the failed nodes. Looks like I might be starting over…

Do the nodes respond to pings?

I agree it’s strange that they keep coming back. Sounds like a DB issue, where a record is not removed.