Synapse 1.64.0 (2022-08-02)
No significant changes since 1.64.0rc2.
Deprecation Warning
Synapse v1.66.0 will remove the ability to delegate the tasks of verifying email address ownership, and password reset confirmation, to an identity server.
If you require your homeserver to verify e-mail addresses or to support password resets via e-mail, please configure your homeserver with SMTP access so that it can send e-mails on its own behalf.
Consult the configuration documentation for more information.
Synapse 1.64.0rc2 (2022-07-29)
This RC reintroduces support for account_threepid_delegates.email
, which was removed in 1.64.0rc1. It remains deprecated and will be removed altogether in Synapse v1.66.0. (#13406)
Synapse 1.64.0rc1 (2022-07-26)
This RC removed the ability to delegate the tasks of verifying email address ownership, and password reset confirmation, to an identity server.
We have also stopped building .deb
packages for Ubuntu 21.10 as it is no longer an active version of Ubuntu.
Features
- Improve error messages when media thumbnails cannot be served. (#13038)
- Allow pagination from remote event after discovering it from MSC3030
/timestamp_to_event
. (#13205) - Add a
room_type
field in the responses for the list room and room details admin APIs. Contributed by @andrewdoh. (#13208) - Add support for room version 10. (#13220)
- Add per-room rate limiting for room joins. For each room, Synapse now monitors the rate of join events in that room, and throttles additional joins if that rate grows too large. (#13253, #13254, #13255, #13276)
- Support Implicit TLS (TLS without using a STARTTLS upgrade, typically on port 465) for sending emails, enabled by the new option
force_tls
. Contributed by Jan Schär. (#13317)
Bugfixes
- Fix a bug introduced in Synapse 1.15.0 where adding a user through the Synapse Admin API with a phone number would fail if the
enable_email_notifs
andemail_notifs_for_new_users
options were enabled. Contributed by @thomasweston12. (#13263) - Fix a bug introduced in Synapse 1.40.0 where a user invited to a restricted room would be briefly unable to join. (#13270)
- Fix a long-standing bug where, in rare instances, Synapse could store the incorrect state for a room after a state resolution. (#13278)
- Fix a bug introduced in v1.18.0 where the
synapse_pushers
metric would overcount pushers when they are replaced. (#13296) - Disable autocorrection and autocapitalisation on the username text field shown during registration when using SSO. (#13350)
- Update locked version of
frozendict
to 2.3.3, which has fixes for memory leaks affecting/sync
. (#13284, #13352)
Improved Documentation
- Provide an example of using the Admin API. Contributed by @jejo86. (#13231)
- Move the documentation for how URL previews work to the URL preview module. (#13233, #13261)
- Add another
contrib
script to help set up worker processes. Contributed by @villepeh. (#13271) - Document that certain config options were added or changed in Synapse 1.62. Contributed by @behrmann. (#13314)
- Document the new
rc_invites.per_issuer
throttling option added in Synapse 1.63. (#13333) - Mention that BuildKit is needed when building Docker images for tests. (#13338)
- Improve Caddy reverse proxy documentation. (#13344)
Deprecations and Removals
- Drop tables that were formerly used for groups/communities. (#12967)
- Drop support for delegating email verification to an external server. (#13192)
- Drop support for calling
/_matrix/client/v3/account/3pid/bind
without anid_access_token
, which was not permitted by the spec. Contributed by @Vetchu. (#13239) - Stop building
.deb
packages for Ubuntu 21.10 (Impish Indri), which has reached end of life. (#13326)
Internal Changes
- Use lower transaction isolation level when purging rooms to avoid serialization errors. Contributed by Nick @ Beeper. (#12942)
- Remove code which incorrectly attempted to reconcile state with remote servers when processing incoming events. (#12943)
- Make the AS login method call
Auth.get_user_by_req
for checking the AS token. (#13094) - Always use a version of canonicaljson that supports the C implementation of frozendict. (#13172)
- Add prometheus counters for ephemeral events and to device messages pushed to app services. Contributed by Brad @ Beeper. (#13175)
- Refactor receipts servlet logic to avoid duplicated code. (#13198)
- Preparation for database schema simplifications: populate
state_key
andrejection_reason
for existing rows in theevents
table. (#13215) - Remove unused database table
event_reference_hashes
. (#13218) - Further reduce queries used sending events when creating new rooms. Contributed by Nick @ Beeper (@Fizzadar). (#13224)
- Call the v2 identity service
/3pid/unbind
endpoint, rather than v1. Contributed by @Vetchu. (#13240) - Use an asynchronous cache wrapper for the get event cache. Contributed by Nick @ Beeper (@Fizzadar). (#13242, #13308)
- Optimise federation sender and appservice pusher event stream processing queries. Contributed by Nick @ Beeper (@Fizzadar). (#13251)
- Log the stack when waiting for an entire room to be un-partial stated. (#13257)
- Fix spurious warning when fetching state after a missing prev event. (#13258)
- Clean-up tests for notifications. (#13260)
- Do not fail build if complement with workers fails. (#13266)
- Don't pull out state in
compute_event_context
for unconflicted state. (#13267, #13274) - Reduce the rebuild time for the complement-synapse docker image. (#13279)
- Don't pull out the full state when creating an event. (#13281, #13307)
- Upgrade from Poetry 1.1.12 to 1.1.14, to fix bugs when locking packages. (#13285)
- Make
DictionaryCache
expire full entries if they haven't been queried in a while, even if specific keys have been queried recently. (#13292) - Use
HTTPStatus
constants in place of literals in tests. (#13297) - Improve performance of query
_get_subset_users_in_room_with_profiles
. (#13299) - Up batch size of
bulk_get_push_rules
and_get_joined_profiles_from_event_ids
. (#13300) - Remove unnecessary
json.dumps
from tests. (#13303) - Reduce memory usage of sending dummy events. (#13310)
- Prevent formatting changes of #3679 from appearing in
git blame
. (#13311) - Change
get_users_in_room
andget_rooms_for_user
caches to enable pruning of old entries. (#13313) - Validate federation destinations and log an error if a destination is invalid. (#13318)
- Fix
FederationClient.get_pdu()
returning events from the cache asoutliers
instead of original events we saw over federation. (#13320) - Reduce memory usage of state caches. (#13323)
- Reduce the amount of state we store in the
state_cache
. (#13324) - Add missing type hints to open tracing module. (#13328, #13345, #13362)
- Remove old base slaved store and de-duplicate cache ID generators. Contributed by Nick @ Beeper (@Fizzadar). (#13329, #13349)
- When reporting metrics is enabled, use ~8x less data to describe DB transaction metrics. (#13342)
- Faster room joins: skip soft fail checks while Synapse only has partial room state, since the current membership of event senders may not be accurately known. (#13354)