element-hq / element-hq/synapse
Synapse relies on unspecced behaviour for the remote server to resync device lists after `prune_outbound_device_list_pokes`
- 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
Assessment
This issue has not been assessed yet.