matrix-org / matrix-org/matrix-spec

Clarify how clients should handle rooms in the `leave` section of sync without a leave member event

Open
#2,203 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

clarification
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

The `/sync` response has a `leave` section, but servers usually also send the `m.room.member` leave event inside the sync payload. The spec should clarify whether that event is mandatory or if clients should assume the user is left merely based on the room ID being in the leave section (even if there are no events provided at all).

Being able to tell clients a room has been left without having to store or fake a full member event would be useful for ensuring rooms deleted by the server don't get stuck on clients. If a leave event is required, servers would have to either persist more data or generate a fake event.

Element Web currently treats the room as joined until it receives the leave event in `state_after`: https://github.com/element-hq/element-web/issues/30449. This came up due to a Synapse bug: https://github.com/element-hq/synapse/issues/18793. The question is whether that server bug should actually break element web or not

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the Matrix /sync specification's leave section and compare its treatment of m.room.member events with the linked Element Web and Synapse issues. Determine whether room IDs alone or a leave event are normative, then document the decided client/server behavior and any required examples or conformance wording in the spec.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.