diff options
author | Erik Johnston <erik@matrix.org> | 2020-10-07 13:49:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-07 13:49:40 +0100 |
commit | 9ca6341969b8b84c0c79a29fb914d1d8dbb3e320 (patch) | |
tree | 50b59bc15ce1d139fa3faef4eda0c36ef27ee308 | |
parent | unblacklist some tests (#8474) (diff) | |
download | synapse-9ca6341969b8b84c0c79a29fb914d1d8dbb3e320.tar.xz |
Fix returning incorrect prev_batch token in incremental sync (#8486)
-rw-r--r-- | changelog.d/8486.bugfix | 1 | ||||
-rw-r--r-- | synapse/handlers/sync.py | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/changelog.d/8486.bugfix b/changelog.d/8486.bugfix new file mode 100644 index 0000000000..63fc091ba6 --- /dev/null +++ b/changelog.d/8486.bugfix @@ -0,0 +1 @@ +Fix incremental sync returning an incorrect `prev_batch` token in timeline section, which when used to paginate returned events that were included in the incremental sync. Broken since v0.16.0. diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index dd1f90e359..6fb8332f93 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -460,8 +460,13 @@ class SyncHandler: recents = [] if not limited or block_all_timeline: + prev_batch_token = now_token + if recents: + room_key = recents[0].internal_metadata.before + prev_batch_token = now_token.copy_and_replace("room_key", room_key) + return TimelineBatch( - events=recents, prev_batch=now_token, limited=False + events=recents, prev_batch=prev_batch_token, limited=False ) filtering_factor = 2 |