element-hq / element-hq/synapse

Synapse relies on unspecced behaviour for the remote server to resync device lists after `prune_outbound_device_list_pokes`

Open
#7,173 0 comments 0 reactions 0 assignees View on GitHub
A-Device-List-Tracking A-Federation A-Spec-Compliance O-Frequent S-Major T-Defect z-p2
Dominant language
Python
Stars
4.6k
Forks
600
Avg merge
5d 22h
Merged PRs (30d)
51

Description

This issue has been migrated from [#7173](https://github.com/matrix-org/synapse/issues/7173).

---

Background: each `m.device_list_update` EDU has a `stream_id`; receiving servers can check that they haven't missed any in the sequence. If a receiving server receives an update with a `prev_id` it doesn't recognise, it should do a full resync for that user.

We use this behaviour to prune device list updates for offline server.

However, synapse currently relies on the unspecced behaviour that the remote server will do a full resync if the `prev_id` is empty. This is wrong - an empty `prev_id` means 'this is the first ever update', so there should be no need for the remote server to resync.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.