github.com/matrix-org/sliding-sync
v0.99.19
#2866 most downloaded on Go modules
matrix-org/sliding-sync
What this package is like to depend on
Last release 9 months ago
17 Nov 2025
Ships unpredictably
gaps range from 9 days to 1.2 years
Some releases are documented
notes for 10 of 22 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
140 releases · first in 2022
1 release in the last 12 months
see the full history below
Release timeline
140 releases · Dec 2022 to Nov 2025Releases
latest 60 of 140-
v0.99.20-0.20251117121451-c376f7f1dd1317 Nov 2025 pre-releaseNothing published for this version
-
v0.99.20-0.20240913153255-c23af6099be913 Sep 2024 pre-releaseNothing published for this version
-
v0.99.20-0.20240821083008-c2dd20a00e9721 Aug 2024 pre-releaseNothing published for this version
-
v0.99.1928 Jun 2024Release notes
Open source →Improvements
- Fix a critical issue which can cause undecryptable messages if the server admin drops/deletes the sliding sync proxy database. This would not only lose encryption keys in the database at that time, but would also prevent new encryption keys being delivered to clients for a potentially long period of time afterwards. Upon updating to this version of the proxy, new encryption keys will be delivered to clients correctly again. See #448 for more information.
What's Changed
- Add grafana dashboard for SS proxy by @wrjlewis in #428
- Protect against dropped databases by @kegsay in #449
- Update Landing.md - add info on how to use
extra_well_known_client_contentinhomeserver.yamlby @jessebot in #443
New Contributors
Full Changelog: v0.99.18...v0.99.19
-
v0.99.1823 May 2024Release notes
Open source →Improvements
- Startup times are reduced by around 20-40% by utilising magical postgres queries over
SELECT DISTINCT. - Slow room queries (determined by the "performance degraded" message) are now significantly faster.
- Device list updates are now stored in a dedicated table rather than serialised as CBOR in the device data table. This will migrate data on the next startup which may take a few minutes. This significantly improves performance across the entire stack: reduced DB load, reduced # open DB conns, reduced CPU usage on the pollers, reduced memory usage for API requests, as shown with the following before/after grafana graph:
Bug fixes
- Ensure the
sinceparam in sync v2 is URL encoded.
What's Changed
- Refactor device data by @kegsay in #437
- Optimize getting the latest events in each room by @S7evinK in #436
- fix: urlencode since opaque string by @gnieto in #439
- e2ee extension: ensure null is not sent when we mean [] by @kegsay in #440
- Optimize getting the latest events by type per room by @S7evinK in #441
New Contributors
Full Changelog: v0.99.17...v0.99.18
- Startup times are reduced by around 20-40% by utilising magical postgres queries over
-
v0.99.18-0.20240521171306-98b12cba6af221 May 2024 pre-releaseNothing published for this version
-
v0.99.18-0.20240520130656-f25087d56ac020 May 2024 pre-releaseNothing published for this version
-
v0.99.18-0.20240520082402-425a5d4a2faf20 May 2024 pre-releaseNothing published for this version
-
v0.99.1710 May 2024Release notes
Open source →As of this version, docker images are now signed.
Bug fixes
- Fix two bugs which could cause device list updates to not be delivered to the client. This could cause problems decrypting events in E2EE rooms for newly logged in users.
What's Changed
- README: document prebuild binaries by @csett86 in #425
- Sign releases by @kegsay in #433
- Ensure device list updates are robust to race conditions and network failures by @kegsay in #432
Full Changelog: v0.99.16...v0.99.17
-
v0.99.17-0.20240426154235-8c76aad4e9ac26 Apr 2024 pre-releaseNothing published for this version
-
v0.99.1626 Apr 2024Release notes
Open source →Bug fixes
- Implement MSC4102 which fixes a bug around threaded read receipts which could cause a room to appear as permanently unread.
- Fixed a bug where Sentry-reported values would be incorrect under high concurrency.
- Fixed an issue which could cause duplicate account data events to be sent.
Improvements
- Ensure clients cannot send maliciously large values for
timeline_limit. - Improved OTLP spans
- Fix race conditions in some tests
- Filter out MSC4115 fields.
- Periodically clean the state snapshots table every hour. When combined with AUTOVACUUM and a VACUUM FULL, this should reduce database sizes significantly (to somewhere between 10-30% of the original size).
What's Changed
- Implement MSC4102 by @kegsay in #401
- Add a sensible timeline_limit cap by @kegsay in #402
- Add more spans for live updates; change when we early return from buffered events by @kegsay in #405
- bugfix: ensure sentry username/id values are correct by @kegsay in #406
- Fixes the spacing for the ENV list in
README.mddoc by @maxkratz in #395 - CGO disabled to allow running on older distros by @csett86 in #393
- Fix race conditions in tests by @kegsay in #410
- bugfix: don't send dupe room account data by @kegsay in #418
- Remove MSC4115 unsigned.membership field by @kegsay in #423
- Clean the syncv3_snapshots table periodically by @kegsay in #422
- Check for unstable prefix in MSC4115 by @kegsay in #424
New Contributors
Full Changelog: v0.99.15...v0.99.16
-
v0.99.16-0.20240311150126-8750e1c4359b11 Mar 2024 pre-releaseNothing published for this version
-
v0.99.16-0.20240305135739-cfff8bccb7ac05 Mar 2024 pre-releaseNothing published for this version
-
v0.99.16-0.20240221140832-a95f3c78c02521 Feb 2024 pre-releaseNothing published for this version
-
v0.99.16-0.20240216100257-aa3ea8fe2e0616 Feb 2024 pre-releaseNothing published for this version
-
v0.99.1522 Jan 2024Release notes
Open source →Bug fixes
- Fixed an issue which would cause metadata about a space child room to be erroneously sent to active connections, even if they weren't in the room. This did not leak any information that the client was not already authorised to see via the
/hierarchyendpoint. This would appear in Element X as a new room in the room list with a room name and avatar, but no timeline history. Restarting Element X would remove the room. - Fixed an issue where the
avatarfield would be set to the other user even if the room was not a DM room.
What's Changed
- bugfix: ensure metadata about space children doesn't leak to active connections by @kegsay in #392
- Only emit avatars when DM room is set by @kegsay in #394
Full Changelog: v0.99.14...v0.99.15
- Fixed an issue which would cause metadata about a space child room to be erroneously sent to active connections, even if they weren't in the room. This did not leak any information that the client was not already authorised to see via the
-
v0.99.1408 Jan 2024Release notes
Open source →Bug fixes
- Fixed a bug which prevented fallback key consumption from being correctly relayed to clients. For some clients (Element X) this would also cause a fallback key to not be uploaded at all, resulting in unable to decrypt errors if all one-time keys were consumed e.g by being offline for a long time. #390
- Fixed a bug which prevented unix sockets working correctly contributed by @nisbet-hubbard in #385
New Contributors
- @nisbet-hubbard made their first contribution in #385
Full Changelog: v0.99.13...v0.99.14
-
v0.99.1324 Nov 2023Release notes
Open source →New features
- Add the ability to connect to the upstream homeserver and listen for sliding sync connections over Unix sockets. (By @cyberb, #378)
Bugfixes
- Fix a bug introduced in v0.99.3 (#101) where sliding sync connections could be unintentionally deleted after another connection expires. (#382)
- Fix a performance issue introduced in v0.99.2 (#71) where handling a large gappy state block could block polling for several minutes. (#363, #373, #377, #380)
New Contributors
Full Changelog: v0.99.12...v0.99.13
-
v0.99.13-0.20231124153104-c31eb3e6612c24 Nov 2023 pre-releaseNothing published for this version
-
v0.99.13-0.20231121103347-a8fb5262611021 Nov 2023 pre-releaseNothing published for this version
-
v0.99.13-0.20231116104743-b6437ef4b3f616 Nov 2023 pre-releaseNothing published for this version
-
v0.99.13-0.20231110151203-365e7cf11aef10 Nov 2023 pre-releaseNothing published for this version
-
v0.99.1209 Nov 2023Release notes
Open source →Docker images available at: https://github.com/matrix-org/sliding-sync/pkgs/container/sliding-sync
Bug fixes
- If a user had specific membership transitions (e.g invite -> join or join -> leave -> join) in a single timeline response (determined by
timeline_limit) then the server could return an incorrect timeline, omitting events they had permission to see and returning aprev_batchtoken which would not recover those events. - An issue where rooms were not processed correctly by the proxy has been fixed and a migration has been applied in this version to recover those rooms. Affected rooms would not be visible to clients, or may be present as "stuck" invites which cannot be accepted/rejected.
- Fixed a bug which would expose pre-emptive bans of a user in a room to that user.
- Fixed a concurrent map r/w panic.
Improvements
- When a connection is destroyed e.g because the access_token used is no longer valid, immediately time out the sync request rather than letting the
?timeout=be hit naturally.
What's Changed
- Make the docker build trigger on
v*tags too. by @DMRobertson in #341 - Cleanup invites in the poller, not the API by @DMRobertson in #333
- Use Complement libraries by @kegsay in #340
- Don't leak pre-emptive bans by @DMRobertson in #342
- Deep-copy pointer backed fields on room metadata by @kegsay in #346
- Testutils matcher improvements by @DMRobertson in #349
- A batch of useful comments by @DMRobertson in #348
- Fix keys() return value starting with zero-valued keys by @DMRobertson in #347
- Add migration to cleanup dead invites by @DMRobertson in #351
- Bump synapse CI image by @kegsay in #353
- Stop waiting for data when closing v2 servers by @DMRobertson in #352
- Bump google.golang.org/grpc from 1.58.0 to 1.58.3 by @dependabot in #356
- Cancel outstanding requests when destroying conns by @DMRobertson in #355
- Add a separate payload for redacting state by @DMRobertson in #359
- Ensure invalidateTokenImmediately acquires mutex by @DMRobertson in #360
- Add FetchMemberships function by @DMRobertson in #362
- Add the ability to reset the JoinedRoomsTracker by @DMRobertson in #361
- Modify which events get returned when requesting initial timeline events by @kegsay in #366
- bugfix: handle malformed state/timeline responses by @kegsay in #368
- Migrate stuck invites by @kegsay in #369
New Contributors
- @dependabot made their first contribution in #356
Full Changelog: v0.99.11...v0.99.12
- If a user had specific membership transitions (e.g invite -> join or join -> leave -> join) in a single timeline response (determined by
-
v0.99.12-0.20231109103856-d04ce7bc51be09 Nov 2023 pre-releaseNothing published for this version
-
v0.99.12-0.20231024113432-56494a0928b724 Oct 2023 pre-releaseNothing published for this version
-
v0.99.12-0.20231011165545-de9006de9c7611 Oct 2023 pre-releaseNothing published for this version
-
v0.99.12-0.20231011161905-4706a4e8611011 Oct 2023 pre-releaseNothing published for this version
-
v0.99.12-0.20231011154533-1e63d8dff5e311 Oct 2023 pre-releaseNothing published for this version
-
v0.99.1111 Oct 2023Release notes
Open source →Docker images available at: https://github.com/matrix-org/sliding-sync/pkgs/container/sliding-sync
Features
- Add optional
SYNCV3_DB_IDLE_TIMEOUT_SECS. On shared infrastructure where database connections are at a premium, a low idle timeout can be used to reap connections rapidly. On dedicated infrastructure where the database is just used for sliding sync, a high idle timeout can slightly improve performance when communicating with the database. - Room heroes can now be requested by specifying
include_heroes: true. See MSC3575 for precise notation. - Add optional
SYNCV3_HTTP_TIMEOUT_SECSand associatedSYNCV3_HTTP_INITIAL_TIMEOUT_SECS, which configures the timeouts for sync v2 pollers. A high timeout is essential for large accounts, where initial sync v2 requests may take 10s of minutes. A lower timeout can be beneficial when network connectivity is interrupted. Having a large timeout (e.g 30min) may mean it can take up to 30 minutes for the proxy to realise that a sync v2 request has failed, during which time the device has not received any data. The proxy defaults to 30 minutes initial and 5 minutes otherwise. If network connectivity between the proxy and upstream homeserver is particularly poor, you may want to lowerSYNCV3_HTTP_TIMEOUT_SECS.
Bug fixes
- An issue where leave events could be received multiple times has been fixed.
- Redactions now invalidate calculated data e.g redacting a room name automatically resends
room.namewith the new calculated name. - Fixed an issue when used with OIDC servers which could cause short-lived tokens to not start a poller, due to caching failures.
- Fixed an issue whereby a bad state block could permanently stop a device poller from making forward progress.
- When the proxy receives a limited sync, the timelines returned to sliding sync clients are now bounded by this value. This ensures that the client can fetch the missed events, and that the client doesn't "skip over" the events, which presents as a chunk of missing messages.
- Stop pollers if the access token keeps returning errors for at least 50 minutes. Retrying forever just adds noise and load to the pollers.
Improvements
- Sync v2 requests no longer request changes to presence. This should reduce load on the upstream homeserver.
- If
SYNCV3_SERVERcannot be reached at startup, log a warning. This should help to reduce configuration errors. - Removed temporary state block metrics. This could adversely affect
/metricscollectors when under heavy load, due to it being a high cardinality metric. This could cause/metricsresponses to be extremly large, enough to cause the collector to refuse to process the response, causing gaps in metrics collection.
What's Changed
- Filter out presence events from /sync requests by @S7evinK in #292
- Fix duplicate leave events by @S7evinK in #297
- Better propagate request context by @sandhose in #301
- Invalidate the global cache after a redaction by @DMRobertson in #296
- bugfix: ensure that we always call EnsurePolling for expired tokens by @kegsay in #302
- Add SYNCV3_DB_IDLE_TIMEOUT_SECS by @kegsay in #303
- Remove per-device token migration added in #89 by @DMRobertson in #309
- Add posibility to request room heroes by @S7evinK in #304
- Make HTTP timeout configurable by @S7evinK in #308
- bugfix: don't wedge pollers when they get bad state blocks by @kegsay in #299
- Don't load events when there's a gap between known events by @DMRobertson in #300
- Reduce mutex contention on callbacks by @kegsay in #311
- Log a warning if the homeserver is unreachable at startup by @DMRobertson in #314
- Update the poller metrics after a poller was started by @S7evinK in #312
- Return a dummy /versions response in tests by @DMRobertson in #316
- Disable constantly failing cypress tests by @DMRobertson in #317
- Remove temporary metric by @kegsay in #322
- Remove
RequestedLatestEventsfield fromUserRoomDataby @DMRobertson in #324 - bugfix: give up polling if the /sync response keeps erroring for >50min by @kegsay in #326
- Fix race condition in test by @kegsay in #337
- bugfix: actually use the provided mock value in tests by @kegsay in #338
- Build and attach {amd,arm}64 binaries to releases by @DMRobertson in #339
New Contributors
Full Changelog: v0.99.10...v0.99.11
- Add optional
-
v0.99.11-ghatest511 Oct 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20231011143648-2b0f63d784c511 Oct 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20231011142342-263770e173f911 Oct 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20231011141800-d0a09cb8660211 Oct 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20231011141411-a9f4ba49b71a11 Oct 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20231002085158-18b63419acff02 Oct 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20230921163051-6fe9b18f8c3521 Sep 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20230920132955-e75a462d4c2320 Sep 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20230915101756-3a451cb22f9815 Sep 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20230914100844-5b32cc44c25214 Sep 2023 pre-releaseNothing published for this version
-
v0.99.11-0.20230907152441-6ad321d86c0807 Sep 2023 pre-releaseNothing published for this version
-
v0.99.1007 Sep 2023 -
v0.99.10-ghatest411 Oct 2023 pre-releaseNothing published for this version
-
v0.99.10-ghatest311 Oct 2023 pre-releaseNothing published for this version
-
v0.99.10-ghatest211 Oct 2023 pre-releaseNothing published for this version
-
v0.99.10-ghatest111 Oct 2023 pre-releaseNothing published for this version
-
v0.99.10-0.20230915102659-509cfc5cd1f715 Sep 2023 pre-releaseNothing published for this version
-
v0.99.10-0.20230907131500-3870be1772f407 Sep 2023 pre-releaseNothing published for this version
-
v0.99.906 Sep 2023Nothing published for this version
-
v0.99.9-0.20230906150242-1fc4669ef75906 Sep 2023 pre-releaseNothing published for this version
-
v0.99.9-0.20230904143316-02a3b7d3643304 Sep 2023 pre-releaseNothing published for this version
-
v0.99.9-0.20230901100517-855287c0d49301 Sep 2023 pre-releaseNothing published for this version
-
v0.99.801 Sep 2023Nothing published for this version
-
v0.99.8-0.20230831164336-79a65f40417331 Aug 2023 pre-releaseNothing published for this version
-
v0.99.8-0.20230829101210-195c52f937a929 Aug 2023 pre-releaseNothing published for this version
-
v0.99.8-0.20230824124643-3ce665d07dc124 Aug 2023 pre-releaseNothing published for this version
-
v0.99.724 Aug 2023Nothing published for this version
-
v0.99.7-0.20230823163555-249c61a6cd7e23 Aug 2023 pre-releaseNothing published for this version
-
v0.99.623 Aug 2023Nothing published for this version
-
v0.99.6-0.20230823104620-6b92d621168223 Aug 2023 pre-releaseNothing published for this version
-
v0.99.6-0.20230822152617-6f26495bf0e422 Aug 2023 pre-releaseNothing published for this version