Synapse 1.46.0 (2021-11-02)
The cause of the performance regression affecting Synapse 1.44 has been identified and fixed. (#11177)
Bugfixes
- Fix a bug introduced in v1.46.0rc1 where URL previews of some XML documents would fail. (#11196)
Synapse 1.46.0rc1 (2021-10-27)
Features
- Add support for Ubuntu 21.10 "Impish Indri". (#11024)
- Port the Password Auth Providers module interface to the new generic interface. (#10548, #11180)
- Experimental support for the thread relation defined in MSC3440. (#11088, #11181, #11192)
- Users admin API can now also modify user type in addition to allowing it to be set on user creation. (#11174)
Bugfixes
- Newly-created public rooms are now only assigned an alias if the room's creation has not been blocked by permission settings. Contributed by @AndrewFerr. (#10930)
- Fix a long-standing bug which meant that events received over federation were sometimes incorrectly accepted into the room state. (#11001, #11009, #11012)
- Fix 500 error on
/messages
when the server accumulates more than 5 backwards extremities at a given depth for a room. (#11027) - Fix a bug where setting a user's
external_id
via the admin API returns 500 and deletes user's existing external mappings if that external ID is already mapped. (#11051) - Fix a long-standing bug where users excluded from the user directory were added into the directory if they belonged to a room which became public or private. (#11075)
- Fix a long-standing bug when attempting to preview URLs which are in the
windows-1252
character encoding. (#11077, #11089) - Fix broken export-data admin command and add test script checking the command to CI. (#11078)
- Show an error when timestamp in seconds is provided to the
/purge_media_cache
Admin API. (#11101) - Fix local users who left all their rooms being removed from the user directory, even if the
search_all_users
config option was enabled. (#11103) - Fix a bug which caused the module API's
get_user_ip_and_agents
function to always fail on workers.get_user_ip_and_agents
was introduced in 1.44.0 and did not function correctly on worker processes at the time. (#11112) - Identity server connection is no longer ignoring
ip_range_whitelist
. (#11120) - Fix a bug introduced in Synapse 1.45.0 breaking the configuration file parsing script. (#11145)
- Fix a performance regression introduced in 1.44.0 which could cause client requests to time out when making large numbers of outbound requests. (#11177, #11190)
- Resolve and share
state_groups
for all MSC2716 historical events in batch. (#10975)
Improved Documentation
- Fix broken links relating to module API deprecation in the upgrade notes. (#11069)
- Add more information about what happens when a user is deactivated. (#11083)
- Clarify the the sample log config can be copied from the documentation without issue. (#11092)
- Update the admin API documentation with an updated list of the characters allowed in registration tokens. (#11093)
- Document Synapse's behaviour when dealing with multiple modules registering the same callbacks and/or handlers for the same HTTP endpoints. (#11096)
- Fix instances of
[example]{.title-ref}
in the upgrade documentation as a result of prior RST to Markdown conversion. (#11118) - Document the version of Synapse each module callback was introduced in. (#11132)
- Document the version of Synapse that introduced each module API method. (#11183)
Internal Changes
- Fix spurious warnings about losing the logging context on the
ReplicationCommandHandler
when losing the replication connection. (#10984) - Include rejected status when we log events. (#11008)
- Add some extra logging to the event persistence code. (#11014)
- Rearrange the internal workings of the incremental user directory updates. (#11035)
- Fix a long-standing bug where users excluded from the directory could still be added to the
users_who_share_private_rooms
table after a regular user joins a private room. (#11143) - Add and improve type hints. (#10972, #11055, #11066, #11076, #11095, #11109, #11121, #11146)
- Mark the Synapse package as containing type annotations and fix export declarations so that Synapse pluggable modules may be type checked against Synapse. (#11054)
- Remove dead code from
MediaFilePaths
. (#11056) - Be more lenient when parsing oEmbed response versions. (#11065)
- Create a separate module for the retention configuration. (#11070)
- Clean up some of the federation event authentication code for clarity. (#11115, #11116, #11122)
- Add docstrings and comments to the application service ephemeral event sending code. (#11138)
- Update the
sign_json
script to support inline configuration of the signing key. (#11139) - Fix broken link in the docker image README. (#11144)
- Always dump logs from unit tests during CI runs. (#11068)
- Add tests for
MediaFilePaths
class. (#11057) - Simplify the user admin API tests. (#11048)
- Add a test for the workaround introduced in #11042 concerning the behaviour of third-party rule modules and
SynapseError
s. (#11071)