You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is malformed because the m.room.create event is objectively in the wrong place. It should be in state, not timeline. Unfortunately, this precise response causes a sequence of failures which ends up failing to process this room and the proxy not noticing it.
Currently the proxy will:
Attempt to parse state.
The Initialilse function fails to parse state due to lack of a create event. This will cause an internal.DataError to be returned as it is a problem with the data. This means "do not retry this sync request, skip over".
It is possible for Synapse to send back malformed sync v2 responses, which look like this:
This is malformed because the
m.room.create
event is objectively in the wrong place. It should be instate
, nottimeline
. Unfortunately, this precise response causes a sequence of failures which ends up failing to process this room and the proxy not noticing it.Currently the proxy will:
state
.Initialilse
function fails to parsestate
due to lack of a create event. This will cause aninternal.DataError
to be returned as it is a problem with the data. This means "do not retry this sync request, skip over".Initialise
, we never look at thetimeline
: https://github.com/matrix-org/sliding-sync/blob/main/sync2/poller.go#L795m.room.create
event in the timeline, which could mean we actually process this room correctly.DataError
being returned, we now incrementsince
, permanently losing the room.To fix this, the proxy should:
DataError
fromInitialise
, look for anm.room.create
in thetimeline
.state
, along with other state events bar the last event.timeline
Initialise
.The text was updated successfully, but these errors were encountered: