element-hq / element-hq/element-web

Malformed reply can cause stuck notification

Open
#26,787 0 comments 0 reactions 0 assignees View on GitHub
A-Notifications O-Uncommon S-Major T-Defect
Dominant language
TypeScript
Stars
13.5k
Forks
2.8k
PR merge metrics
PR metrics pending

Description

### Steps to reproduce

If a (buggy) client sends (in a room with 'all messages' mode enabled) a reply to a threaded event but does not include the thread relation in the reply, this appears to cause element web to get stuck with a notification on the main room (but clear the unread status on the thread).

My guess at a cause: synapse does not class the message as being in the thread but Element does?

This was causing playwright tests to fail because the buggy client in question was our playwright message faking bot, which is how I discovered this (see https://github.com/matrix-org/matrix-react-sdk/pull/12070).

### Outcome

#### What did you expect?
Reading the thread should mark the room + thread as read

#### What happened instead?
Stuck notif badge on room

### Operating system

_No response_

### Browser information

_No response_

### URL for webapp

_No response_

### Application version

_No response_

### Homeserver

_No response_

### Will you send logs?

No

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue with the Playwright message faking bot and inspect the notification and read-state handling for replies missing a thread relation. Check the referenced matrix-react-sdk pull request for context. Done means reading the thread clears both the room and thread notification state, with the Playwright tests passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
playwright, typescript
Domain
frontend, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.