Matter: Cannot add an endpoint to more than two groups

Hello!

Any and all guidance on the issue described below would be greatly appreciated! I am happy to provide any additional information.

Thank you for your time,

Josh

The System

  • A Raspberry Pi 4 running the otbr-agent and chip-tool commands.
  • nRF52840 USB dongle programmed with thread RCP firmware plugged into the Pi.
  • An nRF5340-dk running the matter light_bulb sample using the nRF Connect SDK v2.5.1

The Problem

Attempting to add an endpoint to a third group results in Unable to listen to group on the light_bulb, but the command appears successful from chip-tool's perspective.


The expected output is shown below, after adding the second group.


The full logs for both the Pi and the light_bulb are attached.

2671.pi.log

Bash script for testing

The following script:

  1. Wipes any existing fabric info and sets up a new fabric
  2. Commissions the light_bulb
  3. Creates three groups and adds the light_bulb to each one.
  4. Toggles the LED using each of the three created groups.

The output of me running this script is found in the attached pi.log for the Pi's perspective, and light_bulb.log for the nRF5340's perspective.

1185.test_bench.sh


Attempts to fix the issue

I made the following changes to the light_bulb, which seems to have no affect. Just for kicks I tried setting CONFIG_OPENTHREAD_IP6_MAX_EXT_MCAST_ADDRS to 1, but I was still able to add 2 groups. I do a pristine build between attempts.



Note that there is also a MaxGroupsPerFabric field in src/light_bulb.zap that may be relevant, but I was unable to make it have any affect. Maybe I need some guidance here.

Efforts to isolate the issue

I tried commissioning a second light_bulb running on another nRF5340-dk and was able to add it to two groups, but the third gives Unable to listen to group just like the before.

I tried running connectedhomeip/examples/lighting-app for Linux on the Pi to test a non-Nordic device and interestingly I was able to add three groups, and receive the group cast messages for those three groups (one more than the light_bulb), but then adding a fourth group gave a new failure: CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number 0x0000000000000002 due to overflow: event priority_level: 1 . So this leads me to believe the group limit of 2 is not an issue with the Pi’s setup, but rather the light_bulb .

I made a small patch to the SDK to print the error resulting in Unable to listen to group and it was 4000003 which I can’t seem to find where this is defined.

I found this potentially related issue in the connectedhomeip GitHub.