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.