Skip to content
This repository was archived by the owner on Jun 23, 2026. It is now read-only.
This repository was archived by the owner on Jun 23, 2026. It is now read-only.

Deleted Bindings also need to delete ACLs #1198

Closed

Description

@sup3rm3ga

I successfully added bindings between my Inovelli White switch and Nanoleaf lights. I deleted a few of the bindings and tried to re-add them, but it seems every deleted binding cannot be re-added. I'm going to factory reset the lights and try again.

Activity

  1. jimmyobomsawin commented on Jul 21, 2025

    @jimmyobomsawin

    I think I'm having the same problem. At first I couldn't figure out the pattern as to why I couldn't bind lights. Once I saw your post I realized that that's exactly what it was - if I added a light to my binding and then removed it, I could no longer add the light to any of my Inovelli White switches. And it seems to block the entire node. I added a Philips Hue light to a switch to test it out and then removed it. Now I am no longer able to add any Hue lights, which all share the same node. When I try to add, the UI just doesn't respond. No error message, nothing. The "add" button is just dead.

  2. sup3rm3ga commented on Jul 22, 2025

    @sup3rm3ga
    Author

    I'm not too sure about Matter or how this code works, but I'm wondering if it is writting the access control list or something on the light node but that isn't getting cleaned up, so when it tries to process it again it errors out for some reason.

  3. Apollon77 commented on Jul 22, 2025

    @Apollon77
    Contributor

    Whats the error when you try? Could it be that you run into ACL limits? Any chance to get a log or such?

  4. Luxni commented on Jul 30, 2025

    @Luxni
    Contributor

    I'm very sorry. As I'm currently busy with another project, I only noticed this issue now.

    I got the question on discord.
    Now I need some information to reproduce this problem.

    Please follow the instructions below:

    1. Open the developer tools in your browser.
    2. Open the binding interface and fill in the information.
    3. Clear the console information. There is a button in the upper left corner of the console.
    4. Press the binding button, view the information generated in the console。
    5. take a screenshot to send here.
  5. jvmahon commented on Jul 31, 2025

    @jvmahon

    @Luxni
    Here's the experiment. I'm binding one Inovelli VTM31 to another
    In this case, I'm binding node 186 to node 188.

    Steps 1:
    First, I bound node 186 to endpoint 1, cluster 6
    Second, I bound node 186 to endpoint 6, cluster 6

    Then I deleted both those bindings.

    Then I checked the ACL on Node 188.

    Image

    Or reformatted as a JSON structure, below.
    As you can see, the entries for the bindings are still in the ACL after the deletion.

    [
      {
        "1": 5,
        "2": 2,
        "3": [
          112233
        ],
        "4": null,
        "254": 3
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          186
        ],
        "4": [
          {
            "0": 6,
            "1": 1,
            "2": null
          }
        ],
        "254": 3
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          186
        ],
        "4": [
          {
            "0": 6,
            "1": 6,
            "2": null
          }
        ],
        "254": 3
      }
    ]
    
  6. jvmahon commented on Jul 31, 2025

    @jvmahon

    @Luxni is that information ^^ what you were looking for?

    I was also trying to figure out what happens when a node is deleted from the system. For example, if node A has endpoint 1 bound to node B, and endpoint 2 bound to nodes C and D, and Node A gets deleted, there probably needs to be some means to clean up the access list in B, C, and D. I was trying to figure out if the code did this or not (and, if not, how to do it). I was thinking that this involves something like "if deleting node A, find each endpoint (in this example, endpoints1 and 2) with a binding cluster, and look at each binding cluster to see what it is bound to, then for each bound node, B, C, and D, remove node A from its ACL.

  7. Luxni commented on Jul 31, 2025

    @Luxni
    Contributor

    @jvmahon
    No.
    What I need is debug information to locate where the problem lies.
    I guess the current problem is that an error occurred during the deletion operation.
    I need to obtain this error message.

    Based on the information I know, the current deletion node does not delete any information of the device.
    (the deletion operation should not be performed)

    related: #1198 (comment)

  8. jvmahon commented on Jul 31, 2025

    @jvmahon

    OK, but I'm confused, When you say to open th Developer tools, is this what you mean as this doesn't seem the right place to get helpful information. Or did you mean to go to the Matter Server add-on, and turn on its debug logging and get information from its logs?

    Image
  9. jay-kub commented on Jul 31, 2025

    @jay-kub

    Luxni, here's a console log from deleting a binding and then attempting to re-add the same binding (devices are both Inovelli VTM31). When re-adding the binding, after I click "add", nothing happens in the browser and the binding is unsuccessful.

    delete-then-add.log

    Edit: it doesn't look like the log contains the content of each object. I'd have to expand each object before copying but there's hundreds. Can you let us know which objects you're looking for?

  10. Luxni commented on Jul 31, 2025

    @Luxni
    Contributor

    @jay-kub

    From the log, I didn't see any error messages.
    Then we need to take a look at the content being transmitted.

    The corresponding log is as follows:

    main.js:1 WebSocket send message {message_id: '2', command: 'set_acl_entry', args: {… }}
    main.js:1 WebSocket OnMessage {message_id: '2', result: Array(1)}
    main.js:1 WebSocket send message {message_id: '3', command: 'set_node_binding', args: {… }}
    
  11. jay-kub commented on Aug 1, 2025

    @jay-kub

    @Luxni

    The corresponding log you're looking for is from the binding deletion, is that right? To do that I'll need to factory reset the target node, so I wanted to make sure.

    I pulled some console logs from a failed re-binding attempt. The objects seem to have infinite carrots to expand, so I expanded as many as I could. If you could help me narrow down the relevant info I would appreciate it. Otherwise I can try to find a more comprehensive console logging tool.

    failed-bind.log

  12. Luxni commented on Aug 2, 2025

    @Luxni
    Contributor

    @jay-kub
    the parameter information has been overwritten.
    I want to know the "args" information of "set_acl_entry".
    perhaps you can set a breakpoint in the "set_acl_entry" interface.

  13. blue-hound commented on Aug 22, 2025

    @blue-hound

    Hi,
    I'm having a similar problem but it just seems to be primarily with Nanoleaf devices. I have successfully deleted bindings from Inovelli Switches when I was making three ways. However, one bind appears to have disappeared from the UI but it still appears in the ACL Attribute Value (this ACL list is pasted from Inovelli node 18):

    [
      {
        "1": 5,
        "2": 2,
        "3": [
          112233
        ],
        "4": null,
        "254": 2
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          20
        ],
        "4": [
          {
            "0": 8,
            "1": 1,
            "2": null
          }
        ],
        "254": 2
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          20
        ],
        "4": [
          {
            "0": 6,
            "1": 1,
            "2": null
          }
        ],
        "254": 2
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          20
        ],
        "4": [
          {
            "0": 8,
            "1": 1,
            "2": null
          }
        ],
        "254": 2
      }
    ]
    Image

    The Nanoleaf bindings will not delete and I am receiving the following error in console from trying to delete 37, cluster 8 from node 20:

    node-binding-dialog-Dg3h5wU_.js:1 Binding deletion failed: Missing required fields in AccessControlEntryStruct
         handleBindingDeletionError @ node-binding-dialog-Dg3h5wU_.js:1
         deleteBindingHandler @ node-binding-dialog-Dg3h5wU_.js:1
         await in deleteBindingHandler
         (anonymous) @ node-binding-dialog-Dg3h5wU_.js:18
         handleEvent @ matter-dashboard-app-CD_ksXLY.js:1
    

    I believe I have the Nanoleaf ACL maxed out now but when I try to add another binding from node 20 to node 37, cluster 6 I get the following errors in console:

    node-binding-dialog-Dg3h5wU_.js:1 Error: Missing required fields in AccessControlEntryStruct
        at transform (node-binding-dialog-Dg3h5wU_.js:1:1504)
        at Array.map (<anonymous>)
        at h._updateEntry (node-binding-dialog-Dg3h5wU_.js:1:3036)
        at h.add_target_acl (node-binding-dialog-Dg3h5wU_.js:1:3151)
        at h.addBindingHandler (node-binding-dialog-Dg3h5wU_.js:1:4072)
        at ue.handleEvent (matter-dashboard-app-CD_ksXLY.js:1:17683)
    node-binding-dialog-Dg3h5wU_.js:1 
    
    add acl error: TypeError: Cannot read properties of undefined (reading '0')
        at h.add_target_acl (node-binding-dialog-Dg3h5wU_.js:1:3232)
        at async h.addBindingHandler (node-binding-dialog-Dg3h5wU_.js:1:4061)
    add_target_acl @ node-binding-dialog-Dg3h5wU_.js:1
    await in add_target_acl
    addBindingHandler @ node-binding-dialog-Dg3h5wU_.js:1
    handleEvent @ matter-dashboard-app-CD_ksXLY.js:1
    
    

    The Nanoleaf (node 37) ACL looks like this:

    [
      {
        "254": 1
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          112233
        ],
        "4": null,
        "254": 2
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          20
        ],
        "4": [
          {
            "0": 8,
            "1": 1,
            "2": null
          }
        ],
        "254": 2
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          18
        ],
        "4": [
          {
            "0": 8,
            "1": 1,
            "2": null
          }
        ],
        "254": 2
      },
      {
        "1": 5,
        "2": 2,
        "3": [
          20
        ],
        "4": [
          {
            "0": 6,
            "1": 1,
            "2": null
          }
        ],
        "254": 2
      }
    ]

    Thanks for the great work on bindings! This was a sorely missed feature.

    Edit to add: I am not getting any send/receive messages in the console like I do when I successfully add something so I don't know what was sent or received to the server if anything.

  14. Luxni commented on Aug 22, 2025

    @Luxni
    Contributor

    @blue-hound

    Great report.

    I'm looking for this issue, but since I don't have the relevant device, I need time to contact someone who has it for testing.

  15. blue-hound commented on Aug 22, 2025

    @blue-hound

    I'd be happy to help out. My Python skills aren't bad but they aren't pull request good. I did manage to modify the Matter integration enough to add pin codes to a Matter lock using HA actions but it is definitely not good enough or user friendly enough to merge. Actually, doing something like you did with bindings in the Matter Server itself might be easier. I'll have to look into that and see if I can get something good enough together.

    Anyway, if you can give me some good ideas about how to troubleshoot this, I'll do my best to help you out. I have two Skyconnects (one as a spare) and a couple of ESP32-H2, so I should be able to setup a decent development environment.

  16. Luxni commented on Aug 24, 2025

    @Luxni
    Contributor

    @blue-hound
    You can take a look at this PR:
    #1155

  17. changed the title [-]Deleted Bindings Can't be Re-Added[/-] [+]Deleted Bindings also need to delete ACLs[/+] on Aug 28, 2025
  18. added
    revisit-with-matter.js-controllerRevisit/Revalidate/Recheck the issue or feature request with the matter,js based Matter Server
    on Aug 28, 2025
  19. Luxni commented on Sep 1, 2025

    @Luxni
    Contributor

    @jvmahon @blue-hound @jay-kub

    do you have time to test this fix ?
    #1232

  20. Apollon77 commented on Jan 16, 2026

    @Apollon77
    Contributor

    Ok, seems fixed, is merged, so we assume that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    revisit-with-matter.js-controllerRevisit/Revalidate/Recheck the issue or feature request with the matter,js based Matter Server

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions