[CERT-TEST-FAILURE] TC-MESS-3.1 fails at Step 5 — DUT never generates MessageComplete event for a spoken message
Test Case
- TC-MESS-3.1
Describe the bug
The test case TC-MESS-3.1 validate with the recently merged PR #73594 test case is failing in the master ToT, with the following behaviour.
[MatterTest] 09-16 08:13:13.186 ERROR Declared test parameters at failure:
[pixit] tts_timeout_sec (int): Seconds to wait for each text-to-speech lifecycle event value: 60 (default) Override via: --int-arg tts_timeout_sec:
[MatterTest] 09-16 08:13:13.186 INFO ***** Test Failure : [MatterTest] 09-16 08:13:13.187 INFO Finished test in 62925952.0ms [MatterTest] 09-16 08:13:13.187 ERROR
- Test test_TC_MESS_3_1 failed for the following reason:
- Details=Timeout waiting for event <class 'matter.clusters.Objects.Messages.Events.MessageComplete'>., Extras=None
- File "/home/ubuntu/matter-sdk-master-291891bd2-arm64/chip_env/lib/python3.12/site-packages/matter/testing/event_attribute_reporting.py", line 226, in wait_for_event_type_report
- asserts.fail(f"Timeout waiting for event {event_type}.")
- Test step:
5: TH waits for the DUT to finish TTS playback. Expected outcome: Verify that a MessageComplete event is generated with MessageID=AABBCCDDEEFF00112233445566778899.- Endpoint: 1
TC_MESS_3_1 fails at Step 5 with Timeout waiting for event <class 'matter.clusters.Objects.Messages.Events.MessageComplete'>, even though the command and the first two lifecycle events succeed.
- Step 2 sends PresentMessagesRequest with the SpokenMessage bit set → DUT returns status 0x0 (Endpoint 1, Cluster 0x0097, Command 0x0000).
- Step 3 receives
MessageQueued (EventNumber=5). - Step 4 receives
MessagePresented (EventNumber=6)— the same millisecond as MessageQueued, so the DUT is firing both events straight from the command handler rather than tracking real TTS playback. - Step 5 waits
60 s (tts_timeout_sec default)for MessageComplete. No further event is ever reported on the subscription, and the test aborts before Step 6 runs.
Command to execute the TC in Master ToT:
- Sample app: ./chip-tv-app
- Python Controller: python3 TC_MESS_3_1.py --commissioning-method on-network --discriminator 3840 --passcode 20202021 --storage- path admin_storage.json --endpoint 1
Expected behavior
- The test case should run to completion through Step 6 and PASS. After
MessagePresented, the DUT should generateMessageComplete with MessageID=AABBCCDDEEFF00112233445566778899once spoken playback finishes.
GitHub hash of the SDK that was being used
99a81bd32986c5292b0b1c9245c8e247c2ad717d
Platform
raspi
Log files:
Controller Log for reference:
DUT log for reference:
Source: project-chip/connectedhomeip