Note: this release only fixes a bug that stopped some deployments from upgrading to v1.85.0. There is no need to upgrade to v1.85.1 if successfully running v1.85.0.
Bugfixes
Fix bug in schema delta that broke upgrades for some deployments. Introduced in v1.85.0. (#15738, #15739)
A discovered oEmbed or image URL can bypass the url_preview_url_blacklist setting potentially allowing server side request forgery or bypassing network policies. Impact is limited to IP addresses allowed by the url_preview_ip_range_blacklist setting (by default this only allows public IPs).
See the advisories for more details. If you have any questions, email security@matrix.org.
Synapse 1.85.0rc2 (2023-06-01)
Bugfixes
Fix a performance issue introduced in Synapse v1.83.0 which meant that purging rooms was very slow and database-intensive. (#15693)
Deprecations and Removals
Deprecate calling the /register endpoint with an unspecced user property for application services. (#15703)
Internal Changes
Speed up background jobs populate_full_user_id_user_filters and populate_full_user_id_profiles. (#15700)
Synapse 1.85.0rc1 (2023-05-30)
Features
Improve performance of backfill requests by performing backfill of previously failed requests in the background. (#15585)
Add Unix socket support for Redis connections. Contributed by Jason Little. (#15644)
Bugfixes
Fix a long-standing bug where setting the read marker could fail when using message retention. Contributed by Nick @ Beeper (@fizzadar). (#15464)
Fix a long-standing bug where the url_preview_url_blacklist configuration setting was not applied to oEmbed or image URLs found while previewing a URL. (#15601)
Fix a long-standing bug where filters with multiple backslashes were rejected. (#15607)
Fix a bug introduced in Synapse 1.82.0 where the error message displayed when validation of the app_service_config_files config option fails would be incorrectly formatted. (#15614)
Fix a long-standing bug where deactivated users were still able to login using the custom org.matrix.login.jwt login type (if enabled). (#15624)
Fix a long-standing bug where deactivated users were able to login in uncommon situations. (#15634)
Improved Documentation
Warn users that at least 3.75GB of space is needed for the nix Synapse development environment. (#15613)
Remove outdated comment from the generated and sample homeserver log configs. (#15648)
Improve contributor docs to make it more clear that Rust is a necessary prerequisite. Contributed by @grantm. (#15668)
Deprecations and Removals
Remove the old version of the R30 (30-day retained users) phone-home metric. (#10428)
Internal Changes
Create dependabot changelogs at release time. (#15481)
Add not null constraint to column full_user_id of tables profiles and user_filters. (#15537)
Allow connecting to HTTP Replication Endpoints by using worker_name when constructing the request. (#15578)
Make the thread_id column on event_push_actions, event_push_actions_staging, and event_push_summary non-null. (#15597)
Run mypy type checking with the minimum supported Python version to catch new usage that isn't backwards-compatible. (#15602)
Fix subscriptable type usage in Python <3.9. (#15604)
This patch release fixes a major issue with homeservers that do not have an instance_map defined but which do use workers.
If you have already upgraded to Synapse 1.84.0 and your homeserver is working normally, then there is no need to update to this patch release.
Bugfixes
Fix a bug introduced in Synapse v1.84.0 where workers do not start up when no instance_map was provided. (#15672)
Internal Changes
Add dch and notify-send to the development Nix flake so that the release script can be used. (#15673)
The worker_replication_* configuration settings have been deprecated in favour of configuring the main process consistently with other instances in the instance_map. The deprecated settings will be removed in Synapse v1.88.0, but changing your configuration in advance is recommended. See the upgrade notes for more information.
Bugfixes
Fix a bug introduced in Synapse 1.84.0rc1 where errors during startup were not reported correctly on Python < 3.10. (#15599)
Synapse 1.84.0rc1 (2023-05-16)
Features
Add an option to prevent media downloads from configured domains. (#15197)
Add forget_rooms_on_leave config option to automatically forget rooms when users leave them or are removed from them. (#15224)
Remove references to supporting per-user flag for MSC2654. (#15522)
Don't use a trusted key server when running the demo scripts. (#15527)
Speed up rebuilding of the user directory for local users. (#15529)
Speed up deleting of old rows in event_push_actions. (#15531)
Install the xmlsec and mdbook packages and switch back to the upstream cachix/devenv repo in the nix development environment. (#15532, #15533, #15545)
Implement MSC3987 by removing "dont_notify" from the list of actions in default push rules. (#15534)
Move various module API callback registration methods to a dedicated class. (#15535)
Proxy /user/devices federation queries to application services for MSC3984. (#15539)
Factor out an is_mine_server_name method. (#15542)
Allow running Complement tests using podman by adding a PODMAN environment variable to scripts-dev/complement.sh. (#15543)
Synapse now attempts the versioned appservice paths before falling back to the legacy paths. Usage of the legacy routes should be considered deprecated.
Additionally, Synapse has supported sending the application service access token via the Authorization header since v1.70.0. For backwards compatibility it is also sent as the access_token query parameter. This is insecure and should be considered deprecated.
A future version of Synapse (v1.88.0 or later) will remove support for legacy application service routes and query parameter authorization.
No significant changes since 1.81.0rc2.
Synapse 1.81.0rc2 (2023-04-06)
Bugfixes
Fix the set_device_id_for_pushers_txn background update crash. (#15391)
Internal Changes
Update CI to run complement under the latest stable go version. (#15403)
Synapse 1.81.0rc1 (2023-04-04)
Features
Add the ability to enable/disable registrations when in the OIDC flow. (#14978)
Add a primitive helper script for listing worker endpoints. (#15243)
Experimental support for passing One Time Key and device key requests to application services (MSC3983 and MSC3984). (#15314, #15321)
Allow loading /password_policy endpoint on workers. (#15331)
Add experimental support for Unix sockets. Contributed by Jason Little. (#15353)
Build Debian packages for Ubuntu 23.04 (Lunar Lobster). (#15381)
Bugfixes
Fix a long-standing bug where edits of non-m.room.message events would not be correctly bundled. (#15295)
Fix a bug introduced in Synapse v1.55.0 which could delay remote homeservers being able to decrypt encrypted messages sent by local users. (#15297)
Add a check to SQLite port_db script
to ensure that the sqlite database passed to the script exists before trying to port from it. (#15306)
Fix a bug introduced in Synapse 1.76.0 where responses from worker deployments could include an internal _INT_STREAM_POS key. (#15309)
Fix a long-standing bug preventing users from rejoining rooms after being banned and unbanned over federation. Contributed by Nico. (#15323)
Fix bug in worker mode where on a rolling restart of workers the "typing" worker would consume 100% CPU until it got restarted. (#15332)
Fix a long-standing bug where some to_device messages could be dropped when using workers. (#15349)
Fix a bug introduced in Synapse 1.70.0 where the background sync from a faster join could spin for hours when one of the events involved had been marked for backoff. (#15351)
Fix missing app variable in mail subject for password resets. Contributed by Cyberes. (#15352)
Fix a rare bug introduced in Synapse 1.66.0 where initial syncs would fail when the user had been kicked from a faster joined room that had not finished syncing. (#15383)
Improved Documentation
Fix a typo in login requests ratelimit defaults. (#15341)
Add some clarification to the doc/comments regarding TCP replication. (#15354)
Note that Synapse 1.74 queued a rebuild of the user directory tables. (#15386)
Internal Changes
Use immutabledict instead of frozendict. (#15113)
Add developer documentation for the Federation Sender and add a documentation mechanism using Sphinx. (#15265, #15336)
Make the pushers rely on the device_id instead of the access_token_id for various operations. (#15280)
Fix a bug introduced in Synapse 1.79.0rc1 where attempting to register a on_remove_user_third_party_identifier module API callback would be a no-op. (#15227)
Fix a rare bug introduced in Synapse 1.73 where events could remain unsent to other homeservers after a faster-join to a room. (#15248)
Allow use of the /filter Client-Server APIs on workers. (#15134)
Update support for MSC2677: remove support for server-side aggregation of reactions. (#15172)
Stabilise support for MSC3758: event_property_is push condition. (#15185)
Bugfixes
Fix a bug introduced in Synapse 1.75 that caused experimental support for deleting account data to raise an internal server error while using an account data writer worker. (#14869)
Fix a long-standing bug where Synapse handled an unspecced field on push rules. (#15088)
Fix a long-standing bug where a URL preview would break if the discovered oEmbed failed to download. (#15092)
Fix a long-standing bug where an initial sync would not respond to changes to the list of ignored users if there was an initial sync cached. (#15163)
Add the transaction_id in the events included in many endpoints' responses. (#15174)
Fix a bug introduced in Synapse 1.78.0 where requests to claim dehydrated devices would fail with a 405 error. (#15180)
Stop applying edits when bundling aggregations, per MSC3925. (#15193)
Fix a long-standing bug where the user directory search was not case-insensitive for accented characters. (#15143)
Updates to the Docker image
Improve startup logging in the with-workers Docker image. (#15186)
Update delegation documentation to clarify that SRV DNS delegation does not eliminate all needs to serve files from .well-known locations. Contributed by @williamkray. (#14959)
Fix a mistake in registration_shared_secret_path docs. (#15078)
Improve performance when joining or sending an event in large rooms. (#14962)
Improve performance of joining and leaving large rooms with many local users. (#14971)
Bugfixes
Fix a bug introduced in Synapse 1.53.0 where next_batch tokens from /sync could not be used with the /relations endpoint. (#14866)
Fix a bug introduced in Synapse 1.35.0 where the module API's send_local_online_presence_to would fail to send presence updates over federation. (#14880)
Fix a bug introduced in Synapse 1.70.0 where the background updates to add non-thread unique indexes on receipts could fail when upgrading from 1.67.0 or earlier. (#14915)
Fix a regression introduced in Synapse 1.69.0 which can result in database corruption when database migrations are interrupted on sqlite. (#14926)
Fix a bug introduced in Synapse 1.68.0 where we were unable to service remote joins in rooms with @room notification levels set to null in their (malformed) power levels. (#14942)
Fix a bug introduced in Synapse 1.64.0 where boolean power levels were erroneously permitted in v10 rooms. (#14944)
Fix a long-standing bug where sending messages on servers with presence enabled would spam "Re-starting finished log context" log lines. (#14947)
Fix a bug introduced in Synapse 1.68.0 where logging from the Rust module was not properly logged. (#14976)
Fix various long-standing bugs in Synapse's config, event and request handling where booleans were unintentionally accepted where an integer was expected. (#14945)
Update build system requirements to allow building with poetry-core 1.5.0. (#14949, #15019)
Add an lnav config file for Synapse logs to /contrib/lnav. (#14953)
Faster joins: Refactor internal handling of servers in room to never store an empty list. (#14954)
Faster joins: tag v2/send_join/ requests to indicate if they served a partial join response. (#14950)
Allow running cargo without the extension-module option. (#14965)
Preparatory work for adding a denormalised event stream ordering column in the future. Contributed by Nick @ Beeper (@fizzadar). (#14979, 9cd7610, f10caa7; see #15014)
The 1.76 release is the first to enable faster joins (MSC3706 and MSC3902) by default. Admins can opt-out: see the upgrade notes for more details.
The upgrade from 1.75 to 1.76 changes the account data replication streams in a backwards-incompatible manner. Server operators running a multi-worker deployment should consult the upgrade notes.
Those who are poetry installing from source using our lockfile should ensure their poetry version is 1.3.2 or higher; see upgrade notes.
Notes on faster joins
The faster joins project sees the most benefit when joining a room with a large number of members (joined or historical). We expect it to be particularly useful for joining large public rooms like the Matrix HQ or Synapse Admins rooms.
After a faster join, Synapse considers that room "partially joined". In this state, you should be able to
read incoming messages;
see incoming state changes, e.g. room topic changes; and
send messages, if the room is unencrypted.
Synapse has to spend more effort to complete the join in the background. Once this finishes, you will be able to
send messages, if the room is in encrypted;
retrieve room history from before your join, if permitted by the room settings; and
access the full list of room members.
Improved Documentation
Describe the ideas and the internal machinery behind faster joins. (#14677)
Synapse 1.76.0rc2 (2023-01-27)
Bugfixes
Faster joins: Fix a bug introduced in Synapse 1.69 where device list EDUs could fail to be handled after a restart when a faster join sync is in progress. (#14914)
Internal Changes
Faster joins: Improve performance of looking up partial-state status of rooms. (#14917)
Add a set_displayname() method to the module API for setting a user's display name. (#14629)
Add a dedicated listener configuration for health endpoint. (#14747)
Implement support for MSC3890: Remotely silence local notifications. (#14775)
Implement experimental support for MSC3930: Push rules for (MSC3381) Polls. (#14787)
Per MSC3925, bundle the whole of the replacement with any edited events, and optionally inhibit server-side replacement. (#14811)
Faster joins: always serve a partial join response to servers that request it with the stable query param. (#14839)
Faster joins: allow non-lazy-loading ("eager") syncs to complete after a partial join by omitting partial state rooms until they become fully stated. (#14870)
Faster joins: request partial joins by default. Admins can opt-out of this for the time being---see the upgrade notes. (#14905)
Bugfixes
Add index to improve performance of the /timestamp_to_event endpoint used for jumping to a specific date in the timeline of a room. (#14799)
Fix a long-standing bug where Synapse would exhaust the stack when processing many federation requests where the remote homeserver has disconencted early. (#14812, #14842)
Fix a bug introduced in Synapse 1.64.0 when using room version 10 with frozen events enabled. (#14864)
Fix a long-standing bug where the populate_room_stats background job could fail on broken rooms. (#14873)
Faster joins: Fix a bug in worker deployments where the room stats and user directory would not get updated when finishing a fast join until another event is sent or received. (#14874)
Faster joins: Fix incompatibility with joins into restricted rooms where no local users have the ability to invite. (#14882)
Fix a regression introduced in Synapse 1.69.0 which can result in database corruption when database migrations are interrupted on sqlite. (#14910)
Updates to the Docker image
Bump default Python version in the Dockerfile from 3.9 to 3.11. (#14875)
Improved Documentation
Include x_forwarded entry in the HTTP listener example configs and remove the remaining worker_main_http_uri entries. (#14667)
Remove duplicate commands from the Code Style documentation page; point to the Contributing Guide instead. (#14773)
Add missing documentation for tag to listeners section. (#14803)
Updated documentation in configuration manual for user_directory.search_all_users. (#14818)
Add worker_manhole to configuration manual. (#14824)
Poetry 1.3.2 or higher is now required when poetry installing from source. (#14860)
Internal Changes
Faster remote room joins (worker mode): do not populate external hosts-in-room cache when sending events as this requires blocking for full state. (#14749)
Enable Complement tests for Faster Remote Room Joins against worker-mode Synapse. (#14752)
Add some clarifying comments and refactor a portion of the Keyring class for readability. (#14804)
Add local poetry config files (poetry.toml) to .gitignore. (#14807)
Fix a bug introduced in Synapse 1.75.0rc1 where device lists could be miscalculated with some sync filters. (#14810)
Fix race where calling /members or /state with an at parameter could fail for newly created rooms, when using multiple workers. (#14817)
Synapse 1.75.0rc1 (2023-01-10)
Features
Add a cached function to synapse.module_api that returns a decorator to cache return values of functions. (#14663)
Add experimental support for MSC3391 (removing account data). (#14714)
Support RFC7636 Proof Key for Code Exchange for OAuth single sign-on. (#14750)
Support non-OpenID compliant userinfo claims for subject and picture. (#14753)
Improve performance of /sync when filtering all rooms, message types, or senders. (#14786)
Improve performance of the /hierarchy endpoint. (#14263)
Bugfixes
Fix the MAU Limits section of the Grafana dashboard relying on a specific job name for the workers of a Synapse deployment. (#14644)
Fix a bug introduced in Synapse 1.70.0 which could cause spurious UNIQUE constraint failed errors in the rotate_notifs background job. (#14669)
Ensure stream IDs are always updated after caches get invalidated with workers. Contributed by Nick @ Beeper (@fizzadar). (#14723)
Remove the unspecced device field from /pushrules responses. (#14727)
Fix a bug introduced in Synapse 1.73.0 where the picture_claim configured under oidc_providers was unused (the default value of "picture" was used instead). (#14751)
Unescape HTML entities in URL preview titles making use of oEmbed responses. (#14781)
Disable sending confirmation email when 3pid is disabled. (#14725)
Change handle_new_client_event signature so that a 429 does not reach clients on PartialStateConflictError, and internally retry when needed instead. (#14665)
Remove dependency on jQuery on reCAPTCHA page. (#14672)
Faster joins: make compute_state_after_events consistent with other state-fetching functions that take a StateFilter. (#14676)
Add release note and update documentation regarding optional ICU support in user search. (#14712)
Synapse 1.74.0rc1 (2022-12-13)
Features
Improve user search for international display names. (#14464)
Stop using deprecated keyIds parameter when calling /_matrix/key/v2/server. (#14490, #14525)
Add new push.enabled config option to allow opting out of push notification calculation. (#14551, #14619)
Advertise support for Matrix 1.5 on /_matrix/client/versions. (#14576)
Improve opentracing and logging for to-device message handling. (#14598)
Allow selecting "prejoin" events by state keys in addition to event types. (#14642)
Bugfixes
Fix a long-standing bug where a device list update might not be sent to clients in certain circumstances. (#14435, #14592, #14604)
Suppress a spurious warning when POST /rooms/<room_id>/<membership>/, POST /join/<room_id_or_alias, or the unspecced PUT /join/<room_id_or_alias>/<txn_id> receive an empty HTTP request body. (#14600)
Return spec-compliant JSON errors when unknown endpoints are requested. (#14620, #14621)
Update html templates to load images over HTTPS. Contributed by @ashfame. (#14625)
Fix a long-standing bug where the user directory would return 1 more row than requested. (#14631)
Reject invalid read receipt requests with empty room or event IDs. Contributed by Nick @ Beeper (@fizzadar). (#14632)
Fix a bug introduced in Synapse 1.67.0 where not specifying a config file or a server URL would lead to the register_new_matrix_user script failing. (#14637)
Fix a long-standing bug where the user directory and room/user stats might be out of sync. (#14639, #14643)
Fix a bug introduced in Synapse 1.72.0 where the background updates to add non-thread unique indexes on receipts would fail if they were previously interrupted. (#14650)
Improve validation of field size limits in events. (#14664)
Fix bugs introduced in Synapse 1.55.0 and 1.69.0 where application services would not be notified of events in the correct rooms, due to stale caches. (#14670)
Improved Documentation
Update worker settings for pusher and federation_sender functionality. (#14493)
Add links to third party package repositories, and point to the bug which highlights Ubuntu's out-of-date packages. (#14517)
Please note that legacy Prometheus metric names have been removed in this release; see the upgrade notes for more details.
No significant changes since 1.73.0rc2.
Synapse 1.73.0rc2 (2022-12-01)
Bugfixes
Fix a regression in Synapse 1.73.0rc1 where Synapse's main process would stop responding to HTTP requests when a user with a large number of devices logs in. (#14582)
Synapse 1.73.0rc1 (2022-11-29)
Features
Speed-up /messages with filter_events_for_client optimizations. (#14527)
Improve DB performance by reducing amount of data that gets read in device_lists_changes_in_room. (#14534)
Adds support for handling avatar in SSO OIDC login. Contributed by @ashfame. (#13917)
Prune user's old devices on login if they have too many. (#14038, #14580)
Bugfixes
Fix a long-standing bug where paginating from the start of a room did not work. Contributed by @gnunicorn. (#14149)
Fix a bug introduced in Synapse 1.58.0 where a user with presence state org.matrix.msc3026.busy would mistakenly be set to online when calling /sync or /events on a worker process. (#14393)
Fix a bug introduced in Synapse 1.70.0 where a receipt's thread ID was not sent over federation. (#14466)
Fix a long-standing bug where the List media admin API would fail when processing an image with broken thumbnail information. (#14537)
Fix a bug introduced in Synapse 1.67.0 where two logging context warnings would be logged on startup. (#14574)
In application service transactions that include the experimental org.matrix.msc3202.device_one_time_key_counts key, include a duplicate key of org.matrix.msc3202.device_one_time_keys_count to match the name proposed by MSC3202. (#14565)
Fix a bug introduced in Synapse 0.9 where Synapse would fail to fetch server keys whose IDs contain a forward slash. (#14490)
Improved Documentation
Fixed link to 'Synapse administration endpoints'. (#14499)
Deprecations and Removals
Remove legacy Prometheus metrics names. They were deprecated in Synapse v1.69.0 and disabled by default in Synapse v1.71.0. (#14538)
Remove the worker_main_http_uri configuration setting. This is now handled via internal replication. (#14400, #14476)
Refactor federation_sender and pusher configuration loading. (#14496)
(#14509, #14573)
Faster joins: do not wait for full state when creating events to send. (#14403)
Faster joins: filter out non local events when a room doesn't have its full state. (#14404)
Faster joins: send events to initial list of servers if we don't have the full state yet. (#14408)
Faster joins: use servers list approximation received during send_join (potentially updated with received membership events) in assert_host_in_room. (#14515)
Fix type logic in TCP replication code that prevented correctly ignoring blank commands. (#14449)
Remove option to skip locking of tables when performing emulated upserts, to avoid a class of bugs in future. (#14469)
scripts-dev/federation_client: Fix routing on servers with .well-known files. (#14479)
Reduce default third party invite rate limit to 216 invites per day. (#14487)
Refactor conversion of device list changes in room to outbound pokes to track unconverted rows using a (stream ID, room ID) position instead of updating the converted_to_destinations flag on every row. (#14516)
Add more prompts to the bug report form. (#14522)
Extend editorconfig rules on indent and line length to .pyi files. (#14526)
Run Rust CI when Cargo.lock changes. This is particularly useful for dependabot updates. (#14571)
Fix a possible variable shadow in create_new_client_event. (#14575)
Please note that Synapse now only supports PostgreSQL 11+, because PostgreSQL 10 has reached end-of-life, c.f. our Deprecation Policy.
Bugfixes
Update forgotten references to legacy metrics in the included Grafana dashboard. (#14477)
Synapse 1.72.0rc1 (2022-11-16)
Features
Add experimental support for MSC3912: Relation-based redactions. (#14260)
Build Debian packages for Ubuntu 22.10 (Kinetic Kudu). (#14396)
Add an Admin API endpoint for user lookup based on third-party ID (3PID). Contributed by @ashfame. (#14405)
Faster joins: include heroes' membership events in the partial join response, for rooms without a name or canonical alias. (#14442)
Bugfixes
Faster joins: do not block creation of or queries for room aliases during the resync. (#14292)
Fix a bug introduced in Synapse 1.64.0rc1 which could cause log spam when fetching events from other homeservers. (#14347)
Fix a bug introduced in 1.66 which would not send certain pushrules to clients. Contributed by Nico. (#14356)
Fix a bug introduced in v1.71.0rc1 where the power level event was incorrectly created during initial room creation. (#14361)
Fix the refresh token endpoint to be under /r0 and /v3 instead of /v1. Contributed by Tulir @ Beeper. (#14364)
Fix a long-standing bug where Synapse would raise an error when encountering an unrecognised field in a /sync filter, instead of ignoring it for forward compatibility. (#14369)
Fix a background database update, introduced in Synapse 1.64.0, which could cause poor database performance. (#14374)
Fix PostgreSQL sometimes using table scans for queries against the event_search table, taking a long time and a large amount of IO. (#14409)
Fix rendering of some HTML templates (including emails). Introduced in v1.71.0. (#14448)
Fix a bug introduced in Synapse 1.70.0 where the background updates to add non-thread unique indexes on receipts could fail when upgrading from 1.67.0 or earlier. (#14453)
Updates to the Docker image
Add all Stream Writer worker types to configure_workers_and_start.py. (#14197)
Remove references to legacy worker types in the multi-worker Dockerfile. (#14294)
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [matrixdotorg/synapse](https://github.com/matrix-org/synapse) | minor | `v1.71.0` -> `v1.85.2` |
---
### Release Notes
<details>
<summary>matrix-org/synapse</summary>
### [`v1.85.2`](https://github.com/matrix-org/synapse/releases/tag/v1.85.2)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.85.1...v1.85.2)
# Synapse 1.85.2 (2023-06-08)
## Bugfixes
- Fix regression where using TLS for HTTP replication between workers did not work. Introduced in v1.85.0. ([#​15746](https://github.com/matrix-org/synapse/issues/15746))
### [`v1.85.1`](https://github.com/matrix-org/synapse/releases/tag/v1.85.1)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.85.0...v1.85.1)
# Synapse 1.85.1 (2023-06-07)
Note: this release only fixes a bug that stopped some deployments from upgrading to v1.85.0. There is no need to upgrade to v1.85.1 if successfully running v1.85.0.
## Bugfixes
- Fix bug in schema delta that broke upgrades for some deployments. Introduced in v1.85.0. ([#​15738](https://github.com/matrix-org/synapse/issues/15738), [#​15739](https://github.com/matrix-org/synapse/issues/15739))
### [`v1.85.0`](https://github.com/matrix-org/synapse/releases/tag/v1.85.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.84.1...v1.85.0)
# Synapse 1.85.0 (2023-06-06)
No significant changes since 1.85.0rc2.
#### Security advisory
The following issues are fixed in 1.85.0 (and RCs).
- [GHSA-26c5-ppr8-f33p](https://github.com/matrix-org/synapse/security/advisories/GHSA-26c5-ppr8-f33p) / [CVE-2023-32682](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32682) — Low Severity
It may be possible for a deactivated user to login when using uncommon configurations.
- [GHSA-98px-6486-j7qc](https://github.com/matrix-org/synapse/security/advisories/GHSA-98px-6486-j7qc) / [CVE-2023-32683](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32683) — Low Severity
A discovered oEmbed or image URL can bypass the `url_preview_url_blacklist` setting potentially allowing server side request forgery or bypassing network policies. Impact is limited to IP addresses allowed by the `url_preview_ip_range_blacklist` setting (by default this only allows public IPs).
See the advisories for more details. If you have any questions, email security@matrix.org.
# Synapse 1.85.0rc2 (2023-06-01)
## Bugfixes
- Fix a performance issue introduced in Synapse v1.83.0 which meant that purging rooms was very slow and database-intensive. ([#​15693](https://github.com/matrix-org/synapse/issues/15693))
## Deprecations and Removals
- Deprecate calling the `/register` endpoint with an unspecced `user` property for application services. ([#​15703](https://github.com/matrix-org/synapse/issues/15703))
## Internal Changes
- Speed up background jobs `populate_full_user_id_user_filters` and `populate_full_user_id_profiles`. ([#​15700](https://github.com/matrix-org/synapse/issues/15700))
# Synapse 1.85.0rc1 (2023-05-30)
## Features
- Improve performance of backfill requests by performing backfill of previously failed requests in the background. ([#​15585](https://github.com/matrix-org/synapse/issues/15585))
- Add a new [admin API](https://matrix-org.github.io/synapse/v1.85/usage/administration/admin_api/index.html) to [create a new device for a user](https://matrix-org.github.io/synapse/v1.85/admin_api/user_admin_api.html#create-a-device). ([#​15611](https://github.com/matrix-org/synapse/issues/15611))
- Add Unix socket support for Redis connections. Contributed by Jason Little. ([#​15644](https://github.com/matrix-org/synapse/issues/15644))
## Bugfixes
- Fix a long-standing bug where setting the read marker could fail when using message retention. Contributed by Nick @​ Beeper ([@​fizzadar](https://github.com/fizzadar)). ([#​15464](https://github.com/matrix-org/synapse/issues/15464))
- Fix a long-standing bug where the `url_preview_url_blacklist` configuration setting was not applied to oEmbed or image URLs found while previewing a URL. ([#​15601](https://github.com/matrix-org/synapse/issues/15601))
- Fix a long-standing bug where filters with multiple backslashes were rejected. ([#​15607](https://github.com/matrix-org/synapse/issues/15607))
- Fix a bug introduced in Synapse 1.82.0 where the error message displayed when validation of the `app_service_config_files` config option fails would be incorrectly formatted. ([#​15614](https://github.com/matrix-org/synapse/issues/15614))
- Fix a long-standing bug where deactivated users were still able to login using the custom `org.matrix.login.jwt` login type (if enabled). ([#​15624](https://github.com/matrix-org/synapse/issues/15624))
- Fix a long-standing bug where deactivated users were able to login in uncommon situations. ([#​15634](https://github.com/matrix-org/synapse/issues/15634))
## Improved Documentation
- Warn users that at least 3.75GB of space is needed for the nix Synapse development environment. ([#​15613](https://github.com/matrix-org/synapse/issues/15613))
- Remove outdated comment from the generated and sample homeserver log configs. ([#​15648](https://github.com/matrix-org/synapse/issues/15648))
- Improve contributor docs to make it more clear that Rust is a necessary prerequisite. Contributed by [@​grantm](https://github.com/grantm). ([#​15668](https://github.com/matrix-org/synapse/issues/15668))
## Deprecations and Removals
- Remove the old version of the R30 (30-day retained users) phone-home metric. ([#​10428](https://github.com/matrix-org/synapse/issues/10428))
## Internal Changes
- Create dependabot changelogs at release time. ([#​15481](https://github.com/matrix-org/synapse/issues/15481))
- Add not null constraint to column `full_user_id` of tables `profiles` and `user_filters`. ([#​15537](https://github.com/matrix-org/synapse/issues/15537))
- Allow connecting to HTTP Replication Endpoints by using `worker_name` when constructing the request. ([#​15578](https://github.com/matrix-org/synapse/issues/15578))
- Make the `thread_id` column on `event_push_actions`, `event_push_actions_staging`, and `event_push_summary` non-null. ([#​15597](https://github.com/matrix-org/synapse/issues/15597))
- Run mypy type checking with the minimum supported Python version to catch new usage that isn't backwards-compatible. ([#​15602](https://github.com/matrix-org/synapse/issues/15602))
- Fix subscriptable type usage in Python <3.9. ([#​15604](https://github.com/matrix-org/synapse/issues/15604))
- Update internal terminology. ([#​15606](https://github.com/matrix-org/synapse/issues/15606), [#​15620](https://github.com/matrix-org/synapse/issues/15620))
- Instrument `state` and `state_group` storage-related operations to better picture what's happening when tracing. ([#​15610](https://github.com/matrix-org/synapse/issues/15610), [#​15647](https://github.com/matrix-org/synapse/issues/15647))
- Trace how many new events from the backfill response we need to process. ([#​15633](https://github.com/matrix-org/synapse/issues/15633))
- Re-type config paths in `ConfigError`s to be `StrSequence`s instead of `Iterable[str]`s. ([#​15615](https://github.com/matrix-org/synapse/issues/15615))
- Update Mutual Rooms ([MSC2666](https://github.com/matrix-org/matrix-spec-proposals/pull/2666)) implementation to match new proposal text. ([#​15621](https://github.com/matrix-org/synapse/issues/15621))
- Remove the unstable identifiers from faster joins ([MSC3706](https://github.com/matrix-org/matrix-spec-proposals/pull/3706)). ([#​15625](https://github.com/matrix-org/synapse/issues/15625))
- Fix the olddeps CI. ([#​15626](https://github.com/matrix-org/synapse/issues/15626))
- Remove duplicate timestamp from test logs (`_trial_temp/test.log`). ([#​15636](https://github.com/matrix-org/synapse/issues/15636))
- Fix two memory leaks in `trial` test runs. ([#​15630](https://github.com/matrix-org/synapse/issues/15630))
- Limit the size of the `HomeServerConfig` cache in trial test runs. ([#​15646](https://github.com/matrix-org/synapse/issues/15646))
- Improve type hints. ([#​15658](https://github.com/matrix-org/synapse/issues/15658), [#​15659](https://github.com/matrix-org/synapse/issues/15659))
- Add requesting user id parameter to key claim methods in `TransportLayerClient`. ([#​15663](https://github.com/matrix-org/synapse/issues/15663))
- Speed up rebuilding of the user directory for local users. ([#​15665](https://github.com/matrix-org/synapse/issues/15665))
- Implement "option 2" for [MSC3820](https://github.com/matrix-org/matrix-spec-proposals/pull/3820): Room version 11. ([#​15666](https://github.com/matrix-org/synapse/issues/15666), [#​15678](https://github.com/matrix-org/synapse/issues/15678))
##### Updates to locked dependencies
- Bump furo from 2023.3.27 to 2023.5.20. ([#​15642](https://github.com/matrix-org/synapse/issues/15642))
- Bump log from 0.4.17 to 0.4.18. ([#​15681](https://github.com/matrix-org/synapse/issues/15681))
- Bump prometheus-client from 0.16.0 to 0.17.0. ([#​15682](https://github.com/matrix-org/synapse/issues/15682))
- Bump pydantic from 1.10.7 to 1.10.8. ([#​15685](https://github.com/matrix-org/synapse/issues/15685))
- Bump pygithub from 1.58.1 to 1.58.2. ([#​15643](https://github.com/matrix-org/synapse/issues/15643))
- Bump requests from 2.28.2 to 2.31.0. ([#​15651](https://github.com/matrix-org/synapse/issues/15651))
- Bump sphinx from 6.1.3 to 6.2.1. ([#​15641](https://github.com/matrix-org/synapse/issues/15641))
- Bump types-bleach from 6.0.0.1 to 6.0.0.3. ([#​15686](https://github.com/matrix-org/synapse/issues/15686))
- Bump types-pillow from 9.5.0.2 to 9.5.0.4. ([#​15640](https://github.com/matrix-org/synapse/issues/15640))
- Bump types-pyyaml from 6.0.12.9 to 6.0.12.10. ([#​15683](https://github.com/matrix-org/synapse/issues/15683))
- Bump types-requests from 2.30.0.0 to 2.31.0.0. ([#​15684](https://github.com/matrix-org/synapse/issues/15684))
- Bump types-setuptools from 67.7.0.2 to 67.8.0.0. ([#​15639](https://github.com/matrix-org/synapse/issues/15639))
### [`v1.84.1`](https://github.com/matrix-org/synapse/releases/tag/v1.84.1)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.84.0...v1.84.1)
# Synapse 1.84.1 (2023-05-26)
This patch release fixes a major issue with homeservers that do not have an `instance_map` defined but which do use workers.
If you have already upgraded to Synapse 1.84.0 and your homeserver is working normally, then there is no need to update to this patch release.
## Bugfixes
- Fix a bug introduced in Synapse v1.84.0 where workers do not start up when no `instance_map` was provided. ([#​15672](https://github.com/matrix-org/synapse/issues/15672))
## Internal Changes
- Add `dch` and `notify-send` to the development Nix flake so that the release script can be used. ([#​15673](https://github.com/matrix-org/synapse/issues/15673))
### [`v1.84.0`](https://github.com/matrix-org/synapse/releases/tag/v1.84.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.83.0...v1.84.0)
# Synapse 1.84.0 (2023-05-23)
The `worker_replication_*` configuration settings have been deprecated in favour of configuring the main process consistently with other instances in the `instance_map`. The deprecated settings will be removed in Synapse v1.88.0, but changing your configuration in advance is recommended. See the [upgrade notes](https://github.com/matrix-org/synapse/blob/release-v1.84/docs/upgrade.md#upgrading-to-v1840) for more information.
## Bugfixes
- Fix a bug introduced in Synapse 1.84.0rc1 where errors during startup were not reported correctly on Python < 3.10. ([#​15599](https://github.com/matrix-org/synapse/issues/15599))
# Synapse 1.84.0rc1 (2023-05-16)
## Features
- Add an option to prevent media downloads from configured domains. ([#​15197](https://github.com/matrix-org/synapse/issues/15197))
- Add `forget_rooms_on_leave` config option to automatically forget rooms when users leave them or are removed from them. ([#​15224](https://github.com/matrix-org/synapse/issues/15224))
- Add redis TLS configuration options. ([#​15312](https://github.com/matrix-org/synapse/issues/15312))
- Add a config option to delay push notifications by a random amount, to discourage time-based profiling. ([#​15516](https://github.com/matrix-org/synapse/issues/15516))
- Stabilize support for [MSC2659](https://github.com/matrix-org/matrix-spec-proposals/pull/2659): application service ping endpoint. Contributed by Tulir @​ Beeper. ([#​15528](https://github.com/matrix-org/synapse/issues/15528))
- Implement [MSC4009](https://github.com/matrix-org/matrix-spec-proposals/pull/4009) to expand the supported characters in Matrix IDs. ([#​15536](https://github.com/matrix-org/synapse/issues/15536))
- Advertise support for Matrix 1.6 on `/_matrix/client/versions`. ([#​15559](https://github.com/matrix-org/synapse/issues/15559))
- Print full error and stack-trace of any exception that occurs during startup/initialization. ([#​15569](https://github.com/matrix-org/synapse/issues/15569))
## Bugfixes
- Don't fail on federation over TOR where SRV queries are not supported. Contributed by Zdzichu. ([#​15523](https://github.com/matrix-org/synapse/issues/15523))
- Experimental support for [MSC4010](https://github.com/matrix-org/matrix-spec-proposals/pull/4010) which rejects setting the `"m.push_rules"` via account data. ([#​15554](https://github.com/matrix-org/synapse/issues/15554), [#​15555](https://github.com/matrix-org/synapse/issues/15555))
- Fix a long-standing bug where an invalid membership event could cause an internal server error. ([#​15564](https://github.com/matrix-org/synapse/issues/15564))
- Require at least poetry-core v1.1.0. ([#​15566](https://github.com/matrix-org/synapse/issues/15566), [#​15571](https://github.com/matrix-org/synapse/issues/15571))
## Deprecations and Removals
- Remove need for `worker_replication_*` based settings in worker configuration yaml by placing this data directly on the `instance_map` instead. ([#​15491](https://github.com/matrix-org/synapse/issues/15491))
## Updates to the Docker image
- Add pkg-config package to Stage 0 to be able to build Dockerfile on ppc64le architecture. ([#​15567](https://github.com/matrix-org/synapse/issues/15567))
## Improved Documentation
- Clarify documentation of the "Create or modify account" Admin API. ([#​15544](https://github.com/matrix-org/synapse/issues/15544))
- Fix path to the `statistics/database/rooms` admin API in documentation. ([#​15560](https://github.com/matrix-org/synapse/issues/15560))
- Update and improve Mastodon Single Sign-On documentation. ([#​15587](https://github.com/matrix-org/synapse/issues/15587))
## Internal Changes
- Use oEmbed to generate URL previews for YouTube Shorts. ([#​15025](https://github.com/matrix-org/synapse/issues/15025))
- Create new `Client` for use with HTTP Replication between workers. Contributed by Jason Little. ([#​15470](https://github.com/matrix-org/synapse/issues/15470))
- Bump pyicu from 2.10.2 to 2.11. ([#​15509](https://github.com/matrix-org/synapse/issues/15509))
- Remove references to supporting per-user flag for [MSC2654](https://github.com/matrix-org/matrix-spec-proposals/pull/2654). ([#​15522](https://github.com/matrix-org/synapse/issues/15522))
- Don't use a trusted key server when running the demo scripts. ([#​15527](https://github.com/matrix-org/synapse/issues/15527))
- Speed up rebuilding of the user directory for local users. ([#​15529](https://github.com/matrix-org/synapse/issues/15529))
- Speed up deleting of old rows in `event_push_actions`. ([#​15531](https://github.com/matrix-org/synapse/issues/15531))
- Install the `xmlsec` and `mdbook` packages and switch back to the upstream [cachix/devenv](https://github.com/cachix/devenv) repo in the nix development environment. ([#​15532](https://github.com/matrix-org/synapse/issues/15532), [#​15533](https://github.com/matrix-org/synapse/issues/15533), [#​15545](https://github.com/matrix-org/synapse/issues/15545))
- Implement [MSC3987](https://github.com/matrix-org/matrix-spec-proposals/pull/3987) by removing `"dont_notify"` from the list of actions in default push rules. ([#​15534](https://github.com/matrix-org/synapse/issues/15534))
- Move various module API callback registration methods to a dedicated class. ([#​15535](https://github.com/matrix-org/synapse/issues/15535))
- Proxy `/user/devices` federation queries to application services for [MSC3984](https://github.com/matrix-org/matrix-spec-proposals/pull/3984). ([#​15539](https://github.com/matrix-org/synapse/issues/15539))
- Factor out an `is_mine_server_name` method. ([#​15542](https://github.com/matrix-org/synapse/issues/15542))
- Allow running Complement tests using [podman](https://podman.io/) by adding a `PODMAN` environment variable to `scripts-dev/complement.sh`. ([#​15543](https://github.com/matrix-org/synapse/issues/15543))
- Bump serde from 1.0.160 to 1.0.162. ([#​15548](https://github.com/matrix-org/synapse/issues/15548))
- Bump types-setuptools from 67.6.0.5 to 67.7.0.1. ([#​15549](https://github.com/matrix-org/synapse/issues/15549))
- Bump sentry-sdk from 1.19.1 to 1.22.1. ([#​15550](https://github.com/matrix-org/synapse/issues/15550))
- Bump ruff from 0.0.259 to 0.0.265. ([#​15551](https://github.com/matrix-org/synapse/issues/15551))
- Bump hiredis from 2.2.2 to 2.2.3. ([#​15552](https://github.com/matrix-org/synapse/issues/15552))
- Bump types-requests from 2.29.0.0 to 2.30.0.0. ([#​15553](https://github.com/matrix-org/synapse/issues/15553))
- Add `org.matrix.msc3981` info to `/_matrix/client/versions`. ([#​15558](https://github.com/matrix-org/synapse/issues/15558))
- Declare unstable support for [MSC3391](https://github.com/matrix-org/matrix-spec-proposals/pull/3391) under `/_matrix/client/versions` if the experimental implementation is enabled. ([#​15562](https://github.com/matrix-org/synapse/issues/15562))
- Implement [MSC3821](https://github.com/matrix-org/matrix-spec-proposals/pull/3821) to update the redaction rules. ([#​15563](https://github.com/matrix-org/synapse/issues/15563))
- Implement updated redaction rules from [MSC3389](https://github.com/matrix-org/matrix-spec-proposals/pull/3389). ([#​15565](https://github.com/matrix-org/synapse/issues/15565))
- Allow `pip install` to use setuptools_rust 1.6.0 when building Synapse. ([#​15570](https://github.com/matrix-org/synapse/issues/15570))
- Deal with upcoming Github Actions deprecations. ([#​15576](https://github.com/matrix-org/synapse/issues/15576))
- Export `run_as_background_process` from the module API. ([#​15577](https://github.com/matrix-org/synapse/issues/15577))
- Update build system requirements to allow building with poetry-core==1.6.0. ([#​15588](https://github.com/matrix-org/synapse/issues/15588))
- Bump serde from 1.0.162 to 1.0.163. ([#​15589](https://github.com/matrix-org/synapse/issues/15589))
- Bump phonenumbers from 8.13.7 to 8.13.11. ([#​15590](https://github.com/matrix-org/synapse/issues/15590))
- Bump types-psycopg2 from 2.9.21.9 to 2.9.21.10. ([#​15591](https://github.com/matrix-org/synapse/issues/15591))
- Bump types-commonmark from 0.9.2.2 to 0.9.2.3. ([#​15592](https://github.com/matrix-org/synapse/issues/15592))
- Bump types-setuptools from 67.7.0.1 to 67.7.0.2. ([#​15594](https://github.com/matrix-org/synapse/issues/15594))
### [`v1.83.0`](https://github.com/matrix-org/synapse/releases/tag/v1.83.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.82.0...v1.83.0)
# Synapse 1.83.0 (2023-05-09)
No significant changes since 1.83.0rc1.
# Synapse 1.83.0rc1 (2023-05-02)
## Features
- Experimental support to recursively provide relations per [MSC3981](https://github.com/matrix-org/matrix-spec-proposals/pull/3981). ([#​15315](https://github.com/matrix-org/synapse/issues/15315))
- Experimental support for [MSC3970](https://github.com/matrix-org/matrix-spec-proposals/pull/3970): Scope transaction IDs to devices. ([#​15318](https://github.com/matrix-org/synapse/issues/15318))
- Add an [admin API endpoint](https://matrix-org.github.io/synapse/v1.83/admin_api/experimental_features.html) to support per-user feature flags. ([#​15344](https://github.com/matrix-org/synapse/issues/15344))
- Add a module API to send an HTTP push notification. ([#​15387](https://github.com/matrix-org/synapse/issues/15387))
- Add an [admin API endpoint](https://matrix-org.github.io/synapse/v1.83/admin_api/statistics.html#get-largest-rooms-by-size-in-database) to query the largest rooms by disk space used in the database. ([#​15482](https://github.com/matrix-org/synapse/issues/15482))
## Bugfixes
- Disable push rule evaluation for rooms excluded from sync. ([#​15361](https://github.com/matrix-org/synapse/issues/15361))
- Fix a long-standing bug where cached server key results which were directly fetched would not be properly re-used. ([#​15417](https://github.com/matrix-org/synapse/issues/15417))
- Fix a bug introduced in Synapse 1.73.0 where some experimental push rules were returned by default. ([#​15494](https://github.com/matrix-org/synapse/issues/15494))
## Improved Documentation
- Add Nginx loadbalancing example with sticky mxid for workers. ([#​15411](https://github.com/matrix-org/synapse/issues/15411))
- Update outdated development docs that mention restrictions in versions of SQLite that we no longer support. ([#​15498](https://github.com/matrix-org/synapse/issues/15498))
## Internal Changes
- Speedup tests by caching HomeServerConfig instances. ([#​15284](https://github.com/matrix-org/synapse/issues/15284))
- Add denormalised event stream ordering column to membership state tables for future use. Contributed by Nick @​ Beeper ([@​fizzadar](https://github.com/fizzadar)). ([#​15356](https://github.com/matrix-org/synapse/issues/15356))
- Always use multi-user device resync replication endpoints. ([#​15418](https://github.com/matrix-org/synapse/issues/15418))
- Add column `full_user_id` to tables `profiles` and `user_filters`. ([#​15458](https://github.com/matrix-org/synapse/issues/15458))
- Update support for [MSC3983](https://github.com/matrix-org/matrix-spec-proposals/pull/3983) to allow always returning fallback-keys in a `/keys/claim` request. ([#​15462](https://github.com/matrix-org/synapse/issues/15462))
- Improve type hints. ([#​15465](https://github.com/matrix-org/synapse/issues/15465), [#​15496](https://github.com/matrix-org/synapse/issues/15496), [#​15497](https://github.com/matrix-org/synapse/issues/15497))
- Support claiming more than one OTK at a time. ([#​15468](https://github.com/matrix-org/synapse/issues/15468))
- Bump types-pyyaml from 6.0.12.8 to 6.0.12.9. ([#​15471](https://github.com/matrix-org/synapse/issues/15471))
- Bump pyasn1-modules from 0.2.8 to 0.3.0. ([#​15473](https://github.com/matrix-org/synapse/issues/15473))
- Bump cryptography from 40.0.1 to 40.0.2. ([#​15474](https://github.com/matrix-org/synapse/issues/15474))
- Bump types-netaddr from 0.8.0.7 to 0.8.0.8. ([#​15475](https://github.com/matrix-org/synapse/issues/15475))
- Bump types-jsonschema from 4.17.0.6 to 4.17.0.7. ([#​15476](https://github.com/matrix-org/synapse/issues/15476))
- Ask bug reporters to provide logs as text. ([#​15479](https://github.com/matrix-org/synapse/issues/15479))
- Add a Nix flake for use as a development environment. ([#​15495](https://github.com/matrix-org/synapse/issues/15495))
- Bump anyhow from 1.0.70 to 1.0.71. ([#​15507](https://github.com/matrix-org/synapse/issues/15507))
- Bump types-pillow from 9.4.0.19 to 9.5.0.2. ([#​15508](https://github.com/matrix-org/synapse/issues/15508))
- Bump packaging from 23.0 to 23.1. ([#​15510](https://github.com/matrix-org/synapse/issues/15510))
- Bump types-requests from 2.28.11.16 to 2.29.0.0. ([#​15511](https://github.com/matrix-org/synapse/issues/15511))
- Bump setuptools-rust from 1.5.2 to 1.6.0. ([#​15512](https://github.com/matrix-org/synapse/issues/15512))
- Update the check_schema_delta script to account for when the schema version has been bumped locally. ([#​15466](https://github.com/matrix-org/synapse/issues/15466))
### [`v1.82.0`](https://github.com/matrix-org/synapse/releases/tag/v1.82.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.81.0...v1.82.0)
# Synapse 1.82.0 (2023-04-25)
No significant changes since 1.82.0rc1.
# Synapse 1.82.0rc1 (2023-04-18)
## Features
- Allow loading the `/directory/room/{roomAlias}` endpoint on workers. ([#​15333](https://github.com/matrix-org/synapse/issues/15333))
- Add some validation to `instance_map` configuration loading. ([#​15431](https://github.com/matrix-org/synapse/issues/15431))
- Allow loading the `/capabilities` endpoint on workers. ([#​15436](https://github.com/matrix-org/synapse/issues/15436))
## Bugfixes
- Delete server-side backup keys when deactivating an account. ([#​15181](https://github.com/matrix-org/synapse/issues/15181))
- Fix and document untold assumption that `on_logged_out` module hooks will be called before the deletion of pushers. ([#​15410](https://github.com/matrix-org/synapse/issues/15410))
- Improve robustness when handling a perspective key response by deduplicating received server keys. ([#​15423](https://github.com/matrix-org/synapse/issues/15423))
- Synapse now correctly fails to start if the config option `app_service_config_files` is not a list. ([#​15425](https://github.com/matrix-org/synapse/issues/15425))
- Disable loading `RefreshTokenServlet` (`/_matrix/client/(r0|v3|unstable)/refresh`) on workers. ([#​15428](https://github.com/matrix-org/synapse/issues/15428))
## Improved Documentation
- Note that the `delete_stale_devices_after` background job always runs on the main process. ([#​15452](https://github.com/matrix-org/synapse/issues/15452))
## Deprecations and Removals
- Remove the broken, unspecced registration fallback. Note that the *login* fallback is unaffected by this change. ([#​15405](https://github.com/matrix-org/synapse/issues/15405))
## Internal Changes
- Bump black from 23.1.0 to 23.3.0. ([#​15372](https://github.com/matrix-org/synapse/issues/15372))
- Bump pyopenssl from 23.1.0 to 23.1.1. ([#​15373](https://github.com/matrix-org/synapse/issues/15373))
- Bump types-psycopg2 from 2.9.21.8 to 2.9.21.9. ([#​15374](https://github.com/matrix-org/synapse/issues/15374))
- Bump types-netaddr from 0.8.0.6 to 0.8.0.7. ([#​15375](https://github.com/matrix-org/synapse/issues/15375))
- Bump types-opentracing from 2.4.10.3 to 2.4.10.4. ([#​15376](https://github.com/matrix-org/synapse/issues/15376))
- Bump dawidd6/action-download-artifact from 2.26.0 to 2.26.1. ([#​15404](https://github.com/matrix-org/synapse/issues/15404))
- Bump parameterized from 0.8.1 to 0.9.0. ([#​15412](https://github.com/matrix-org/synapse/issues/15412))
- Bump types-pillow from 9.4.0.17 to 9.4.0.19. ([#​15413](https://github.com/matrix-org/synapse/issues/15413))
- Bump sentry-sdk from 1.17.0 to 1.19.1. ([#​15414](https://github.com/matrix-org/synapse/issues/15414))
- Bump immutabledict from 2.2.3 to 2.2.4. ([#​15415](https://github.com/matrix-org/synapse/issues/15415))
- Bump dawidd6/action-download-artifact from 2.26.1 to 2.27.0. ([#​15441](https://github.com/matrix-org/synapse/issues/15441))
- Bump serde_json from 1.0.95 to 1.0.96. ([#​15442](https://github.com/matrix-org/synapse/issues/15442))
- Bump serde from 1.0.159 to 1.0.160. ([#​15443](https://github.com/matrix-org/synapse/issues/15443))
- Bump pillow from 9.4.0 to 9.5.0. ([#​15444](https://github.com/matrix-org/synapse/issues/15444))
- Bump furo from 2023.3.23 to 2023.3.27. ([#​15445](https://github.com/matrix-org/synapse/issues/15445))
- Bump types-pyopenssl from 23.1.0.0 to 23.1.0.2. ([#​15446](https://github.com/matrix-org/synapse/issues/15446))
- Bump mypy from 1.0.0 to 1.0.1. ([#​15447](https://github.com/matrix-org/synapse/issues/15447))
- Bump psycopg2 from 2.9.5 to 2.9.6. ([#​15448](https://github.com/matrix-org/synapse/issues/15448))
- Improve DB performance of clearing out old data from `stream_ordering_to_exterm`. ([#​15382](https://github.com/matrix-org/synapse/issues/15382), [#​15429](https://github.com/matrix-org/synapse/issues/15429))
- Implement [MSC3989](https://github.com/matrix-org/matrix-spec-proposals/pull/3989) redaction algorithm. ([#​15393](https://github.com/matrix-org/synapse/issues/15393))
- Implement [MSC2175](https://github.com/matrix-org/matrix-doc/pull/2175) to stop adding `creator` to create events. ([#​15394](https://github.com/matrix-org/synapse/issues/15394))
- Implement [MSC2174](https://github.com/matrix-org/matrix-spec-proposals/pull/2174) to move the `redacts` key to a `content` property. ([#​15395](https://github.com/matrix-org/synapse/issues/15395))
- Trust dtonlay/rust-toolchain in CI. ([#​15406](https://github.com/matrix-org/synapse/issues/15406))
- Explicitly install Synapse during typechecking in CI. ([#​15409](https://github.com/matrix-org/synapse/issues/15409))
- Only load the SSO redirect servlet if SSO is enabled. ([#​15421](https://github.com/matrix-org/synapse/issues/15421))
- Refactor `SimpleHttpClient` to pull out a base class. ([#​15427](https://github.com/matrix-org/synapse/issues/15427))
- Improve type hints. ([#​15432](https://github.com/matrix-org/synapse/issues/15432))
- Convert async to normal tests in `TestSSOHandler`. ([#​15433](https://github.com/matrix-org/synapse/issues/15433))
- Speed up the user directory background update. ([#​15435](https://github.com/matrix-org/synapse/issues/15435))
- Disable directory listing for static resources in `/_matrix/static/`. ([#​15438](https://github.com/matrix-org/synapse/issues/15438))
- Move various module API callback registration methods to a dedicated class. ([#​15453](https://github.com/matrix-org/synapse/issues/15453))
### [`v1.81.0`](https://github.com/matrix-org/synapse/releases/tag/v1.81.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.80.0...v1.81.0)
# Synapse 1.81.0 (2023-04-11)
Synapse now attempts the versioned appservice paths before falling back to the [legacy paths](https://spec.matrix.org/v1.6/application-service-api/#legacy-routes). Usage of the legacy routes should be considered deprecated.
Additionally, Synapse has supported sending the application service access token via [the `Authorization` header](https://spec.matrix.org/v1.6/application-service-api/#authorization) since v1.70.0. For backwards compatibility it is *also* sent as the `access_token` query parameter. This is insecure and should be considered deprecated.
A future version of Synapse (v1.88.0 or later) will remove support for legacy application service routes and query parameter authorization.
No significant changes since 1.81.0rc2.
# Synapse 1.81.0rc2 (2023-04-06)
## Bugfixes
- Fix the `set_device_id_for_pushers_txn` background update crash. ([#​15391](https://github.com/matrix-org/synapse/issues/15391))
## Internal Changes
- Update CI to run complement under the latest stable go version. ([#​15403](https://github.com/matrix-org/synapse/issues/15403))
# Synapse 1.81.0rc1 (2023-04-04)
## Features
- Add the ability to enable/disable registrations when in the OIDC flow. ([#​14978](https://github.com/matrix-org/synapse/issues/14978))
- Add a primitive helper script for listing worker endpoints. ([#​15243](https://github.com/matrix-org/synapse/issues/15243))
- Experimental support for passing One Time Key and device key requests to application services ([MSC3983](https://github.com/matrix-org/matrix-spec-proposals/pull/3983) and [MSC3984](https://github.com/matrix-org/matrix-spec-proposals/pull/3984)). ([#​15314](https://github.com/matrix-org/synapse/issues/15314), [#​15321](https://github.com/matrix-org/synapse/issues/15321))
- Allow loading `/password_policy` endpoint on workers. ([#​15331](https://github.com/matrix-org/synapse/issues/15331))
- Add experimental support for Unix sockets. Contributed by Jason Little. ([#​15353](https://github.com/matrix-org/synapse/issues/15353))
- Build Debian packages for Ubuntu 23.04 (Lunar Lobster). ([#​15381](https://github.com/matrix-org/synapse/issues/15381))
## Bugfixes
- Fix a long-standing bug where edits of non-`m.room.message` events would not be correctly bundled. ([#​15295](https://github.com/matrix-org/synapse/issues/15295))
- Fix a bug introduced in Synapse v1.55.0 which could delay remote homeservers being able to decrypt encrypted messages sent by local users. ([#​15297](https://github.com/matrix-org/synapse/issues/15297))
- Add a check to [SQLite port_db script](https://matrix-org.github.io/synapse/latest/postgres.html#porting-from-sqlite)
to ensure that the sqlite database passed to the script exists before trying to port from it. ([#​15306](https://github.com/matrix-org/synapse/issues/15306))
- Fix a bug introduced in Synapse 1.76.0 where responses from worker deployments could include an internal `_INT_STREAM_POS` key. ([#​15309](https://github.com/matrix-org/synapse/issues/15309))
- Fix a long-standing bug that Synpase only used the [legacy appservice routes](https://spec.matrix.org/v1.6/application-service-api/#legacy-routes). ([#​15317](https://github.com/matrix-org/synapse/issues/15317))
- Fix a long-standing bug preventing users from rejoining rooms after being banned and unbanned over federation. Contributed by Nico. ([#​15323](https://github.com/matrix-org/synapse/issues/15323))
- Fix bug in worker mode where on a rolling restart of workers the "typing" worker would consume 100% CPU until it got restarted. ([#​15332](https://github.com/matrix-org/synapse/issues/15332))
- Fix a long-standing bug where some to_device messages could be dropped when using workers. ([#​15349](https://github.com/matrix-org/synapse/issues/15349))
- Fix a bug introduced in Synapse 1.70.0 where the background sync from a faster join could spin for hours when one of the events involved had been marked for backoff. ([#​15351](https://github.com/matrix-org/synapse/issues/15351))
- Fix missing app variable in mail subject for password resets. Contributed by Cyberes. ([#​15352](https://github.com/matrix-org/synapse/issues/15352))
- Fix a rare bug introduced in Synapse 1.66.0 where initial syncs would fail when the user had been kicked from a faster joined room that had not finished syncing. ([#​15383](https://github.com/matrix-org/synapse/issues/15383))
## Improved Documentation
- Fix a typo in login requests ratelimit defaults. ([#​15341](https://github.com/matrix-org/synapse/issues/15341))
- Add some clarification to the doc/comments regarding TCP replication. ([#​15354](https://github.com/matrix-org/synapse/issues/15354))
- Note that Synapse 1.74 queued a rebuild of the user directory tables. ([#​15386](https://github.com/matrix-org/synapse/issues/15386))
## Internal Changes
- Use `immutabledict` instead of `frozendict`. ([#​15113](https://github.com/matrix-org/synapse/issues/15113))
- Add developer documentation for the Federation Sender and add a documentation mechanism using Sphinx. ([#​15265](https://github.com/matrix-org/synapse/issues/15265), [#​15336](https://github.com/matrix-org/synapse/issues/15336))
- Make the pushers rely on the `device_id` instead of the `access_token_id` for various operations. ([#​15280](https://github.com/matrix-org/synapse/issues/15280))
- Bump sentry-sdk from 1.15.0 to 1.17.0. ([#​15285](https://github.com/matrix-org/synapse/issues/15285))
- Allow running the Twisted trunk job against other branches. ([#​15302](https://github.com/matrix-org/synapse/issues/15302))
- Remind the releaser to ask for changelog feedback in [#synapse-dev](https://matrix.to/#/#synapse-dev:matrix.org). ([#​15303](https://github.com/matrix-org/synapse/issues/15303))
- Bump dtolnay/rust-toolchain from [`e12eda5`](https://github.com/matrix-org/synapse/commit/e12eda571dc9a5ee5d58eecf4738ec291c66f295) to [`fc32530`](https://github.com/matrix-org/synapse/commit/fc3253060d0c959bea12a59f10f8391454a0b02d). ([#​15304](https://github.com/matrix-org/synapse/issues/15304))
- Reject events with an invalid "mentions" property per [MSC3952](https://github.com/matrix-org/matrix-spec-proposals/pull/3952). ([#​15311](https://github.com/matrix-org/synapse/issues/15311))
- As an optimisation, use `TRUNCATE` on Postgres when clearing the user directory tables. ([#​15316](https://github.com/matrix-org/synapse/issues/15316))
- Fix `.gitignore` rule for the Complement source tarball downloaded automatically by `complement.sh`. ([#​15319](https://github.com/matrix-org/synapse/issues/15319))
- Bump serde from 1.0.157 to 1.0.158. ([#​15324](https://github.com/matrix-org/synapse/issues/15324))
- Bump regex from 1.7.1 to 1.7.3. ([#​15325](https://github.com/matrix-org/synapse/issues/15325))
- Bump types-pyopenssl from 23.0.0.4 to 23.1.0.0. ([#​15326](https://github.com/matrix-org/synapse/issues/15326))
- Bump furo from 2022.12.7 to 2023.3.23. ([#​15327](https://github.com/matrix-org/synapse/issues/15327))
- Bump ruff from 0.0.252 to 0.0.259. ([#​15328](https://github.com/matrix-org/synapse/issues/15328))
- Bump cryptography from 40.0.0 to 40.0.1. ([#​15329](https://github.com/matrix-org/synapse/issues/15329))
- Bump mypy-zope from 0.9.0 to 0.9.1. ([#​15330](https://github.com/matrix-org/synapse/issues/15330))
- Speed up unit tests when using SQLite3. ([#​15334](https://github.com/matrix-org/synapse/issues/15334))
- Speed up pydantic CI job. ([#​15339](https://github.com/matrix-org/synapse/issues/15339))
- Speed up sample config CI job. ([#​15340](https://github.com/matrix-org/synapse/issues/15340))
- Fix copyright year in SSO footer template. ([#​15358](https://github.com/matrix-org/synapse/issues/15358))
- Bump peaceiris/actions-gh-pages from 3.9.2 to 3.9.3. ([#​15369](https://github.com/matrix-org/synapse/issues/15369))
- Bump serde from 1.0.158 to 1.0.159. ([#​15370](https://github.com/matrix-org/synapse/issues/15370))
- Bump serde_json from 1.0.94 to 1.0.95. ([#​15371](https://github.com/matrix-org/synapse/issues/15371))
- Speed up membership queries for users with forgotten rooms. ([#​15385](https://github.com/matrix-org/synapse/issues/15385))
### [`v1.80.0`](https://github.com/matrix-org/synapse/releases/tag/v1.80.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.79.0...v1.80.0)
# Synapse 1.80.0 (2023-03-28)
No significant changes since 1.80.0rc2.
# Synapse 1.80.0rc2 (2023-03-22)
## Bugfixes
- Fix a bug in which the [`POST /_matrix/client/v3/rooms/{roomId}/report/{eventId}`](https://spec.matrix.org/v1.6/client-server-api/#post_matrixclientv3roomsroomidreporteventid) endpoint would return the wrong error if the user did not have permission to view the event. This aligns Synapse's implementation with [MSC2249](https://github.com/matrix-org/matrix-spec-proposals/pull/2249). ([#​15298](https://github.com/matrix-org/synapse/issues/15298), [#​15300](https://github.com/matrix-org/synapse/issues/15300))
- Fix a bug introduced in Synapse 1.75.0rc1 where the [SQLite port_db script](https://matrix-org.github.io/synapse/latest/postgres.html#porting-from-sqlite)
would fail to open the SQLite database. ([#​15301](https://github.com/matrix-org/synapse/issues/15301))
# Synapse 1.80.0rc1 (2023-03-21)
## Features
- Stabilise support for [MSC3966](https://github.com/matrix-org/matrix-spec-proposals/pull/3966): `event_property_contains` push condition. ([#​15187](https://github.com/matrix-org/synapse/issues/15187))
- Implement [MSC2659](https://github.com/matrix-org/matrix-spec-proposals/pull/2659): application service ping endpoint. Contributed by Tulir @​ Beeper. ([#​15249](https://github.com/matrix-org/synapse/issues/15249))
- Allow loading `/register/available` endpoint on workers. ([#​15268](https://github.com/matrix-org/synapse/issues/15268))
- Improve performance of creating and authenticating events. ([#​15195](https://github.com/matrix-org/synapse/issues/15195))
- Add topic and name events to group of events that are batch persisted when creating a room. ([#​15229](https://github.com/matrix-org/synapse/issues/15229))
## Bugfixes
- Fix a long-standing bug in which the user directory would assume any remote membership state events represent a profile change. ([#​14755](https://github.com/matrix-org/synapse/issues/14755), [#​14756](https://github.com/matrix-org/synapse/issues/14756))
- Implement [MSC3873](https://github.com/matrix-org/matrix-spec-proposals/pull/3873) to fix a long-standing bug where properties with dots were handled ambiguously in push rules. ([#​15190](https://github.com/matrix-org/synapse/issues/15190))
- Faster joins: Fix a bug introduced in Synapse 1.66 where spurious "Failed to find memberships ..." errors would be logged. ([#​15232](https://github.com/matrix-org/synapse/issues/15232))
- Fix a long-standing error when sending message into deleted room. ([#​15235](https://github.com/matrix-org/synapse/issues/15235))
## Updates to the Docker image
- Ensure the Dockerfile builds on platforms that don't have a `cryptography` wheel. ([#​15239](https://github.com/matrix-org/synapse/issues/15239))
- Mirror images to the GitHub Container Registry (`ghcr.io/matrix-org/synapse`). ([#​15281](https://github.com/matrix-org/synapse/issues/15281), [#​15282](https://github.com/matrix-org/synapse/issues/15282))
## Improved Documentation
- Add a missing endpoint to the workers documentation. ([#​15223](https://github.com/matrix-org/synapse/issues/15223))
## Internal Changes
- Add additional functionality to declaring worker types when starting Complement in worker mode. ([#​14921](https://github.com/matrix-org/synapse/issues/14921))
- Add `Synapse-Trace-Id` to `access-control-expose-headers` header. ([#​14974](https://github.com/matrix-org/synapse/issues/14974))
- Make the `HttpTransactionCache` use the `Requester` in addition of the just the `Request` to build the transaction key. ([#​15200](https://github.com/matrix-org/synapse/issues/15200))
- Improve log lines when purging rooms. ([#​15222](https://github.com/matrix-org/synapse/issues/15222))
- Improve type hints. ([#​15230](https://github.com/matrix-org/synapse/issues/15230), [#​15231](https://github.com/matrix-org/synapse/issues/15231), [#​15238](https://github.com/matrix-org/synapse/issues/15238))
- Move various module API callback registration methods to a dedicated class. ([#​15237](https://github.com/matrix-org/synapse/issues/15237))
- Configure GitHub Actions for merge queues. ([#​15244](https://github.com/matrix-org/synapse/issues/15244))
- Add schema comments about the `destinations` and `destination_rooms` tables. ([#​15247](https://github.com/matrix-org/synapse/issues/15247))
- Skip processing of auto-join room behaviour if there are no auto-join rooms configured. ([#​15262](https://github.com/matrix-org/synapse/issues/15262))
- Remove unused store method `_set_destination_retry_timings_emulated`. ([#​15266](https://github.com/matrix-org/synapse/issues/15266))
- Reorganize URL preview code. ([#​15269](https://github.com/matrix-org/synapse/issues/15269))
- Clean-up direct TCP replication code. ([#​15272](https://github.com/matrix-org/synapse/issues/15272), [#​15274](https://github.com/matrix-org/synapse/issues/15274))
- Make `configure_workers_and_start` script used in Complement tests compatible with older versions of Python. ([#​15275](https://github.com/matrix-org/synapse/issues/15275))
- Add a `/versions` flag for [MSC3952](https://github.com/matrix-org/matrix-spec-proposals/pull/3952). ([#​15293](https://github.com/matrix-org/synapse/issues/15293))
- Bump hiredis from 2.2.1 to 2.2.2. ([#​15252](https://github.com/matrix-org/synapse/issues/15252))
- Bump serde from 1.0.152 to 1.0.155. ([#​15253](https://github.com/matrix-org/synapse/issues/15253))
- Bump pysaml2 from 7.2.1 to 7.3.1. ([#​15254](https://github.com/matrix-org/synapse/issues/15254))
- Bump msgpack from 1.0.4 to 1.0.5. ([#​15255](https://github.com/matrix-org/synapse/issues/15255))
- Bump gitpython from 3.1.30 to 3.1.31. ([#​15256](https://github.com/matrix-org/synapse/issues/15256))
- Bump cryptography from 39.0.1 to 39.0.2. ([#​15257](https://github.com/matrix-org/synapse/issues/15257))
- Bump pydantic from 1.10.4 to 1.10.6. ([#​15286](https://github.com/matrix-org/synapse/issues/15286))
- Bump serde from 1.0.155 to 1.0.157. ([#​15287](https://github.com/matrix-org/synapse/issues/15287))
- Bump anyhow from 1.0.69 to 1.0.70. ([#​15288](https://github.com/matrix-org/synapse/issues/15288))
- Bump txredisapi from 1.4.7 to 1.4.9. ([#​15289](https://github.com/matrix-org/synapse/issues/15289))
- Bump pygithub from 1.57 to 1.58.1. ([#​15290](https://github.com/matrix-org/synapse/issues/15290))
- Bump types-requests from 2.28.11.12 to 2.28.11.15. ([#​15291](https://github.com/matrix-org/synapse/issues/15291))
### [`v1.79.0`](https://github.com/matrix-org/synapse/releases/tag/v1.79.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.78.0...v1.79.0)
# Synapse 1.79.0 (2023-03-14)
No significant changes since 1.79.0rc2.
# Synapse 1.79.0rc2 (2023-03-13)
## Bugfixes
- Fix a bug introduced in Synapse 1.79.0rc1 where attempting to register a `on_remove_user_third_party_identifier` module API callback would be a no-op. ([#​15227](https://github.com/matrix-org/synapse/issues/15227))
- Fix a rare bug introduced in Synapse 1.73 where events could remain unsent to other homeservers after a faster-join to a room. ([#​15248](https://github.com/matrix-org/synapse/issues/15248))
## Internal Changes
- Refactor `filter_events_for_server`. ([#​15240](https://github.com/matrix-org/synapse/issues/15240))
# Synapse 1.79.0rc1 (2023-03-07)
## Features
- Add two new Third Party Rules module API callbacks: [`on_add_user_third_party_identifier`](https://matrix-org.github.io/synapse/v1.79/modules/third_party_rules_callbacks.html#on_add_user_third_party_identifier) and [`on_remove_user_third_party_identifier`](https://matrix-org.github.io/synapse/v1.79/modules/third_party_rules_callbacks.html#on_remove_user_third_party_identifier). ([#​15044](https://github.com/matrix-org/synapse/issues/15044))
- Experimental support for [MSC3967](https://github.com/matrix-org/matrix-spec-proposals/pull/3967) to not require UIA for setting up cross-signing on first use. ([#​15077](https://github.com/matrix-org/synapse/issues/15077))
- Add media information to the command line [user data export tool](https://matrix-org.github.io/synapse/v1.79/usage/administration/admin_faq.html#how-can-i-export-user-data). ([#​15107](https://github.com/matrix-org/synapse/issues/15107))
- Add an [admin API](https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/index.html) to delete a [specific event report](https://spec.matrix.org/v1.6/client-server-api/#reporting-content). ([#​15116](https://github.com/matrix-org/synapse/issues/15116))
- Add support for knocking to workers. ([#​15133](https://github.com/matrix-org/synapse/issues/15133))
- Allow use of the `/filter` Client-Server APIs on workers. ([#​15134](https://github.com/matrix-org/synapse/issues/15134))
- Update support for [MSC2677](https://github.com/matrix-org/matrix-spec-proposals/pull/2677): remove support for server-side aggregation of reactions. ([#​15172](https://github.com/matrix-org/synapse/issues/15172))
- Stabilise support for [MSC3758](https://github.com/matrix-org/matrix-spec-proposals/pull/3758): `event_property_is` push condition. ([#​15185](https://github.com/matrix-org/synapse/issues/15185))
## Bugfixes
- Fix a bug introduced in Synapse 1.75 that caused experimental support for deleting account data to raise an internal server error while using an account data writer worker. ([#​14869](https://github.com/matrix-org/synapse/issues/14869))
- Fix a long-standing bug where Synapse handled an unspecced field on push rules. ([#​15088](https://github.com/matrix-org/synapse/issues/15088))
- Fix a long-standing bug where a URL preview would break if the discovered oEmbed failed to download. ([#​15092](https://github.com/matrix-org/synapse/issues/15092))
- Fix a long-standing bug where an initial sync would not respond to changes to the list of ignored users if there was an initial sync cached. ([#​15163](https://github.com/matrix-org/synapse/issues/15163))
- Add the `transaction_id` in the events included in many endpoints' responses. ([#​15174](https://github.com/matrix-org/synapse/issues/15174))
- Fix a bug introduced in Synapse 1.78.0 where requests to claim dehydrated devices would fail with a `405` error. ([#​15180](https://github.com/matrix-org/synapse/issues/15180))
- Stop applying edits when bundling aggregations, per [MSC3925](https://github.com/matrix-org/matrix-spec-proposals/pull/3925). ([#​15193](https://github.com/matrix-org/synapse/issues/15193))
- Fix a long-standing bug where the user directory search was not case-insensitive for accented characters. ([#​15143](https://github.com/matrix-org/synapse/issues/15143))
## Updates to the Docker image
- Improve startup logging in the with-workers Docker image. ([#​15186](https://github.com/matrix-org/synapse/issues/15186))
## Improved Documentation
- Document how to use caches in a module. ([#​14026](https://github.com/matrix-org/synapse/issues/14026))
- Clarify which worker processes the ThirdPartyRules' [`on_new_event`](https://matrix-org.github.io/synapse/v1.78/modules/third_party_rules_callbacks.html#on_new_event) module API callback runs on. ([#​15071](https://github.com/matrix-org/synapse/issues/15071))
- Document using [Shibboleth](https://www.shibboleth.net/) as an OpenID Provider. ([#​15112](https://github.com/matrix-org/synapse/issues/15112))
- Correct reference to `federation_verify_certificates` in configuration documentation. ([#​15139](https://github.com/matrix-org/synapse/issues/15139))
- Correct small documentation errors in some `MatrixFederationHttpClient` methods. ([#​15148](https://github.com/matrix-org/synapse/issues/15148))
- Correct the description of the behavior of `registration_shared_secret_path` on startup. ([#​15168](https://github.com/matrix-org/synapse/issues/15168))
## Deprecations and Removals
- Deprecate the `on_threepid_bind` module callback, to be replaced by [`on_add_user_third_party_identifier`](https://matrix-org.github.io/synapse/v1.79/modules/third_party_rules_callbacks.html#on_add_user_third_party_identifier). See [upgrade notes](https://github.com/matrix-org/synapse/blob/release-v1.79/docs/upgrade.md#upgrading-to-v1790). ([#​15044](https://github.com/matrix-org/synapse/issues/15044))
- Remove the unspecced `room_alias` field from the [`/createRoom`](https://spec.matrix.org/v1.6/client-server-api/#post_matrixclientv3createroom) response. ([#​15093](https://github.com/matrix-org/synapse/issues/15093))
- Remove the unspecced `PUT` on the `/knock/{roomIdOrAlias}` endpoint. ([#​15189](https://github.com/matrix-org/synapse/issues/15189))
- Remove the undocumented and unspecced `type` parameter to the `/thumbnail` endpoint. ([#​15137](https://github.com/matrix-org/synapse/issues/15137))
- Remove unspecced and buggy `PUT` method on the unstable `/rooms/<room_id>/batch_send` endpoint. ([#​15199](https://github.com/matrix-org/synapse/issues/15199))
## Internal Changes
- Run the integration test suites with the asyncio reactor enabled in CI. ([#​14101](https://github.com/matrix-org/synapse/issues/14101))
- Batch up storing state groups when creating a new room. ([#​14918](https://github.com/matrix-org/synapse/issues/14918))
- Update [MSC3952](https://github.com/matrix-org/matrix-spec-proposals/pull/3952) support based on changes to the MSC. ([#​15051](https://github.com/matrix-org/synapse/issues/15051))
- Refactor writing json data in `FileExfiltrationWriter`. ([#​15095](https://github.com/matrix-org/synapse/issues/15095))
- Tighten the login ratelimit defaults. ([#​15135](https://github.com/matrix-org/synapse/issues/15135))
- Fix a typo in an experimental config setting. ([#​15138](https://github.com/matrix-org/synapse/issues/15138))
- Refactor the media modules. ([#​15146](https://github.com/matrix-org/synapse/issues/15146), [#​15175](https://github.com/matrix-org/synapse/issues/15175))
- Improve type hints. ([#​15164](https://github.com/matrix-org/synapse/issues/15164))
- Move `get_event_report` and `get_event_reports_paginate` from `RoomStore` to `RoomWorkerStore`. ([#​15165](https://github.com/matrix-org/synapse/issues/15165))
- Remove dangling reference to being a reference implementation in docstring. ([#​15167](https://github.com/matrix-org/synapse/issues/15167))
- Add an option to force a rebuild of the "editable" complement image. ([#​15184](https://github.com/matrix-org/synapse/issues/15184))
- Use nightly rustfmt in CI. ([#​15188](https://github.com/matrix-org/synapse/issues/15188))
- Add a `get_next_txn` method to `StreamIdGenerator` to match `MultiWriterIdGenerator`. ([#​15191](https://github.com/matrix-org/synapse/issues/15191))
- Combine `AbstractStreamIdTracker` and `AbstractStreamIdGenerator`. ([#​15192](https://github.com/matrix-org/synapse/issues/15192))
- Automatically fix errors with `ruff`. ([#​15194](https://github.com/matrix-org/synapse/issues/15194))
- Refactor database transaction for query users' devices to reduce database pool contention. ([#​15215](https://github.com/matrix-org/synapse/issues/15215))
- Correct `test_icu_word_boundary_punctuation` so that it passes with the ICU versions available in Alpine and macOS. ([#​15177](https://github.com/matrix-org/synapse/issues/15177))
<details><summary>Locked dependency updates</summary>
- Bump actions/checkout from 2 to 3. ([#​15155](https://github.com/matrix-org/synapse/issues/15155))
- Bump black from 22.12.0 to 23.1.0. ([#​15103](https://github.com/matrix-org/synapse/issues/15103))
- Bump dawidd6/action-download-artifact from 2.25.0 to 2.26.0. ([#​15152](https://github.com/matrix-org/synapse/issues/15152))
- Bump docker/login-action from 1 to 2. ([#​15154](https://github.com/matrix-org/synapse/issues/15154))
- Bump matrix-org/backend-meta from 1 to 2. ([#​15156](https://github.com/matrix-org/synapse/issues/15156))
- Bump ruff from 0.0.237 to 0.0.252. ([#​15159](https://github.com/matrix-org/synapse/issues/15159))
- Bump serde_json from 1.0.93 to 1.0.94. ([#​15214](https://github.com/matrix-org/synapse/issues/15214))
- Bump types-commonmark from 0.9.2.1 to 0.9.2.2. ([#​15209](https://github.com/matrix-org/synapse/issues/15209))
- Bump types-opentracing from 2.4.10.1 to 2.4.10.3. ([#​15158](https://github.com/matrix-org/synapse/issues/15158))
- Bump types-pillow from 9.4.0.13 to 9.4.0.17. ([#​15211](https://github.com/matrix-org/synapse/issues/15211))
- Bump types-psycopg2 from 2.9.21.4 to 2.9.21.8. ([#​15210](https://github.com/matrix-org/synapse/issues/15210))
- Bump types-pyopenssl from 22.1.0.2 to 23.0.0.4. ([#​15213](https://github.com/matrix-org/synapse/issues/15213))
- Bump types-setuptools from 67.3.0.1 to 67.4.0.3. ([#​15160](https://github.com/matrix-org/synapse/issues/15160))
- Bump types-setuptools from 67.4.0.3 to 67.5.0.0. ([#​15212](https://github.com/matrix-org/synapse/issues/15212))
- Bump typing-extensions from 4.4.0 to 4.5.0. ([#​15157](https://github.com/matrix-org/synapse/issues/15157))
</details>
### [`v1.78.0`](https://github.com/matrix-org/synapse/releases/tag/v1.78.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.77.0...v1.78.0)
# Synapse 1.78.0 (2023-02-28)
## Bugfixes
- Fix a bug introduced in Synapse 1.76 where 5s delays would occasionally occur in deployments using workers. ([#​15150](https://github.com/matrix-org/synapse/issues/15150))
# Synapse 1.78.0rc1 (2023-02-21)
## Features
- Implement the experimental `exact_event_match` push rule condition from [MSC3758](https://github.com/matrix-org/matrix-spec-proposals/pull/3758). ([#​14964](https://github.com/matrix-org/synapse/issues/14964))
- Add account data to the command line [user data export tool](https://matrix-org.github.io/synapse/v1.78/usage/administration/admin_faq.html#how-can-i-export-user-data). ([#​14969](https://github.com/matrix-org/synapse/issues/14969))
- Implement [MSC3873](https://github.com/matrix-org/matrix-spec-proposals/pull/3873) to disambiguate push rule keys with dots in them. ([#​15004](https://github.com/matrix-org/synapse/issues/15004))
- Allow Synapse to use a specific Redis [logical database](https://redis.io/commands/select/) in worker-mode deployments. ([#​15034](https://github.com/matrix-org/synapse/issues/15034))
- Tag opentracing spans for federation requests with the name of the worker serving the request. ([#​15042](https://github.com/matrix-org/synapse/issues/15042))
- Implement the experimental `exact_event_property_contains` push rule condition from [MSC3966](https://github.com/matrix-org/matrix-spec-proposals/pull/3966). ([#​15045](https://github.com/matrix-org/synapse/issues/15045))
- Remove spurious `dont_notify` action from the defaults for the `.m.rule.reaction` pushrule. ([#​15073](https://github.com/matrix-org/synapse/issues/15073))
- Update the error code returned when user sends a duplicate annotation. ([#​15075](https://github.com/matrix-org/synapse/issues/15075))
## Bugfixes
- Prevent clients from reporting nonexistent events. ([#​13779](https://github.com/matrix-org/synapse/issues/13779))
- Return spec-compliant JSON errors when unknown endpoints are requested. ([#​14605](https://github.com/matrix-org/synapse/issues/14605))
- Fix a long-standing bug where the room aliases returned could be corrupted. ([#​15038](https://github.com/matrix-org/synapse/issues/15038))
- Fix a bug introduced in Synapse 1.76.0 where partially-joined rooms could not be deleted using the [purge room API](https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#delete-room-api). ([#​15068](https://github.com/matrix-org/synapse/issues/15068))
- Fix a long-standing bug where federated joins would fail if the first server in the list of servers to try is not in the room. ([#​15074](https://github.com/matrix-org/synapse/issues/15074))
- Fix a bug introduced in Synapse v1.74.0 where searching with colons when using ICU for search term tokenisation would fail with an error. ([#​15079](https://github.com/matrix-org/synapse/issues/15079))
- Reduce the likelihood of a rare race condition where rejoining a restricted room over federation would fail. ([#​15080](https://github.com/matrix-org/synapse/issues/15080))
- Fix a bug introduced in Synapse 1.76 where workers would fail to start if the `health` listener was configured. ([#​15096](https://github.com/matrix-org/synapse/issues/15096))
- Fix a bug introduced in Synapse 1.75 where the [portdb script](https://matrix-org.github.io/synapse/release-v1.78/postgres.html#porting-from-sqlite) would fail to run after a room had been faster-joined. ([#​15108](https://github.com/matrix-org/synapse/issues/15108))
## Improved Documentation
- Document how to start Synapse with Poetry. Contributed by [@​thezaidbintariq](https://github.com/thezaidbintariq). ([#​14892](https://github.com/matrix-org/synapse/issues/14892), [#​15022](https://github.com/matrix-org/synapse/issues/15022))
- Update delegation documentation to clarify that SRV DNS delegation does not eliminate all needs to serve files from .well-known locations. Contributed by [@​williamkray](https://github.com/williamkray). ([#​14959](https://github.com/matrix-org/synapse/issues/14959))
- Fix a mistake in registration_shared_secret_path docs. ([#​15078](https://github.com/matrix-org/synapse/issues/15078))
- Refer to a more recent blog post on the [Database Maintenance Tools](https://matrix-org.github.io/synapse/latest/usage/administration/database_maintenance_tools.html) page. Contributed by [@​jahway603](https://github.com/jahway603). ([#​15083](https://github.com/matrix-org/synapse/issues/15083))
## Internal Changes
- Re-type hint some collections as read-only. ([#​13755](https://github.com/matrix-org/synapse/issues/13755))
- Faster joins: don't stall when another user joins during a partial-state room resync. ([#​14606](https://github.com/matrix-org/synapse/issues/14606))
- Add a class `UnpersistedEventContext` to allow for the batching up of storing state groups. ([#​14675](https://github.com/matrix-org/synapse/issues/14675))
- Add a check to ensure that locked dependencies have source distributions available. ([#​14742](https://github.com/matrix-org/synapse/issues/14742))
- Tweak comment on `_is_local_room_accessible` as part of room visibility in `/hierarchy` to clarify the condition for a room being visible. ([#​14834](https://github.com/matrix-org/synapse/issues/14834))
- Prevent `WARNING: there is already a transaction in progress` lines appearing in PostgreSQL's logs on some occasions. ([#​14840](https://github.com/matrix-org/synapse/issues/14840))
- Use `StrCollection` to avoid potential bugs with `Collection[str]`. ([#​14929](https://github.com/matrix-org/synapse/issues/14929))
- Improve performance of `/sync` in a few situations. ([#​14973](https://github.com/matrix-org/synapse/issues/14973))
- Limit concurrent event creation for a room to avoid state resolution when sending bursts of events to a local room. ([#​14977](https://github.com/matrix-org/synapse/issues/14977))
- Skip calculating unread push actions in /sync when enable_push is false. ([#​14980](https://github.com/matrix-org/synapse/issues/14980))
- Add a schema dump symlinks inside `contrib`, to make it easier for IDEs to interrogate Synapse's database schema. ([#​14982](https://github.com/matrix-org/synapse/issues/14982))
- Improve type hints. ([#​15008](https://github.com/matrix-org/synapse/issues/15008), [#​15026](https://github.com/matrix-org/synapse/issues/15026), [#​15027](https://github.com/matrix-org/synapse/issues/15027), [#​15028](https://github.com/matrix-org/synapse/issues/15028), [#​15031](https://github.com/matrix-org/synapse/issues/15031), [#​15035](https://github.com/matrix-org/synapse/issues/15035), [#​15052](https://github.com/matrix-org/synapse/issues/15052), [#​15072](https://github.com/matrix-org/synapse/issues/15072), [#​15084](https://github.com/matrix-org/synapse/issues/15084))
- Update [MSC3952](https://github.com/matrix-org/matrix-spec-proposals/pull/3952) support based on changes to the MSC. ([#​15037](https://github.com/matrix-org/synapse/issues/15037))
- Avoid mutating a cached value in `get_user_devices_from_cache`. ([#​15040](https://github.com/matrix-org/synapse/issues/15040))
- Fix a rare exception in logs on start up. ([#​15041](https://github.com/matrix-org/synapse/issues/15041))
- Update pyo3-log to v0.8.1. ([#​15043](https://github.com/matrix-org/synapse/issues/15043))
- Avoid mutating cached values in `_generate_sync_entry_for_account_data`. ([#​15047](https://github.com/matrix-org/synapse/issues/15047))
- Refactor arguments of `try_unbind_threepid` and `_try_unbind_threepid_with_id_server` to not use dictionaries. ([#​15053](https://github.com/matrix-org/synapse/issues/15053))
- Merge debug logging from the hotfixes branch. ([#​15054](https://github.com/matrix-org/synapse/issues/15054))
- Faster joins: omit device list updates originating from partial state rooms in /sync responses without lazy loading of members enabled. ([#​15069](https://github.com/matrix-org/synapse/issues/15069))
- Fix clashing database transaction name. ([#​15070](https://github.com/matrix-org/synapse/issues/15070))
- Upper-bound frozendict dependency. This works around us being unable to test installing our wheels against Python 3.11 in CI. ([#​15114](https://github.com/matrix-org/synapse/issues/15114))
- Tweak logging for when a worker waits for its view of a replication stream to catch up. ([#​15120](https://github.com/matrix-org/synapse/issues/15120))
<details><summary>Locked dependency updates</summary>
- Bump bleach from 5.0.1 to 6.0.0. ([#​15059](https://github.com/matrix-org/synapse/issues/15059))
- Bump cryptography from 38.0.4 to 39.0.1. ([#​15020](https://github.com/matrix-org/synapse/issues/15020))
- Bump ruff version from 0.0.230 to 0.0.237. ([#​15033](https://github.com/matrix-org/synapse/issues/15033))
- Bump dtolnay/rust-toolchain from [`9cd00a8`](https://github.com/matrix-org/synapse/commit/9cd00a88a73addc8617065438eff914dd08d0955) to [`25dc93b`](https://github.com/matrix-org/synapse/commit/25dc93b901a87e864900a8aec6c12e9aa794c0c3). ([#​15060](https://github.com/matrix-org/synapse/issues/15060))
- Bump systemd-python from 234 to 235. ([#​15061](https://github.com/matrix-org/synapse/issues/15061))
- Bump serde_json from 1.0.92 to 1.0.93. ([#​15062](https://github.com/matrix-org/synapse/issues/15062))
- Bump types-requests from 2.28.11.8 to 2.28.11.12. ([#​15063](https://github.com/matrix-org/synapse/issues/15063))
- Bump types-pillow from 9.4.0.5 to 9.4.0.10. ([#​15064](https://github.com/matrix-org/synapse/issues/15064))
- Bump sentry-sdk from 1.13.0 to 1.15.0. ([#​15065](https://github.com/matrix-org/synapse/issues/15065))
- Bump types-jsonschema from 4.17.0.3 to 4.17.0.5. ([#​15099](https://github.com/matrix-org/synapse/issues/15099))
- Bump types-bleach from 5.0.3.1 to 6.0.0.0. ([#​15100](https://github.com/matrix-org/synapse/issues/15100))
- Bump dtolnay/rust-toolchain from [`25dc93b`](https://github.com/matrix-org/synapse/commit/25dc93b901a87e864900a8aec6c12e9aa794c0c3) to [`e12eda5`](https://github.com/matrix-org/synapse/commit/e12eda571dc9a5ee5d58eecf4738ec291c66f295). ([#​15101](https://github.com/matrix-org/synapse/issues/15101))
- Bump dawidd6/action-download-artifact from 2.24.3 to 2.25.0. ([#​15102](https://github.com/matrix-org/synapse/issues/15102))
- Bump types-pillow from 9.4.0.10 to 9.4.0.13. ([#​15104](https://github.com/matrix-org/synapse/issues/15104))
- Bump types-setuptools from 67.1.0.0 to 67.3.0.1. ([#​15105](https://github.com/matrix-org/synapse/issues/15105))
</details>
### [`v1.77.0`](https://github.com/matrix-org/synapse/releases/tag/v1.77.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.76.0...v1.77.0)
# Synapse 1.77.0 (2023-02-14)
No significant changes since 1.77.0rc2.
# Synapse 1.77.0rc2 (2023-02-10)
## Bugfixes
- Fix bug where retried replication requests would return a failure. Introduced in v1.76.0. ([#​15024](https://github.com/matrix-org/synapse/issues/15024))
## Internal Changes
- Prepare for future database schema changes. ([#​15036](https://github.com/matrix-org/synapse/issues/15036))
# Synapse 1.77.0rc1 (2023-02-07)
## Features
- Experimental support for [MSC3952](https://github.com/matrix-org/matrix-spec-proposals/pull/3952): intentional mentions. ([#​14823](https://github.com/matrix-org/synapse/issues/14823), [#​14943](https://github.com/matrix-org/synapse/issues/14943), [#​14957](https://github.com/matrix-org/synapse/issues/14957), [#​14958](https://github.com/matrix-org/synapse/issues/14958))
- Experimental support to suppress notifications from message edits ([MSC3958](https://github.com/matrix-org/matrix-spec-proposals/pull/3958)). ([#​14960](https://github.com/matrix-org/synapse/issues/14960), [#​15016](https://github.com/matrix-org/synapse/issues/15016))
- Add profile information, devices and connections to the command line [user data export tool](https://matrix-org.github.io/synapse/v1.77/usage/administration/admin_faq.html#how-can-i-export-user-data). ([#​14894](https://github.com/matrix-org/synapse/issues/14894))
- Improve performance when joining or sending an event in large rooms. ([#​14962](https://github.com/matrix-org/synapse/issues/14962))
- Improve performance of joining and leaving large rooms with many local users. ([#​14971](https://github.com/matrix-org/synapse/issues/14971))
## Bugfixes
- Fix a bug introduced in Synapse 1.53.0 where `next_batch` tokens from `/sync` could not be used with the `/relations` endpoint. ([#​14866](https://github.com/matrix-org/synapse/issues/14866))
- Fix a bug introduced in Synapse 1.35.0 where the module API's `send_local_online_presence_to` would fail to send presence updates over federation. ([#​14880](https://github.com/matrix-org/synapse/issues/14880))
- Fix a bug introduced in Synapse 1.70.0 where the background updates to add non-thread unique indexes on receipts could fail when upgrading from 1.67.0 or earlier. ([#​14915](https://github.com/matrix-org/synapse/issues/14915))
- Fix a regression introduced in Synapse 1.69.0 which can result in database corruption when database migrations are interrupted on sqlite. ([#​14926](https://github.com/matrix-org/synapse/issues/14926))
- Fix a bug introduced in Synapse 1.68.0 where we were unable to service remote joins in rooms with `@room` notification levels set to `null` in their (malformed) power levels. ([#​14942](https://github.com/matrix-org/synapse/issues/14942))
- Fix a bug introduced in Synapse 1.64.0 where boolean power levels were erroneously permitted in [v10 rooms](https://spec.matrix.org/v1.5/rooms/v10/). ([#​14944](https://github.com/matrix-org/synapse/issues/14944))
- Fix a long-standing bug where sending messages on servers with presence enabled would spam "Re-starting finished log context" log lines. ([#​14947](https://github.com/matrix-org/synapse/issues/14947))
- Fix a bug introduced in Synapse 1.68.0 where logging from the Rust module was not properly logged. ([#​14976](https://github.com/matrix-org/synapse/issues/14976))
- Fix various long-standing bugs in Synapse's config, event and request handling where booleans were unintentionally accepted where an integer was expected. ([#​14945](https://github.com/matrix-org/synapse/issues/14945))
## Internal Changes
- Add missing type hints. ([#​14879](https://github.com/matrix-org/synapse/issues/14879), [#​14886](https://github.com/matrix-org/synapse/issues/14886), [#​14887](https://github.com/matrix-org/synapse/issues/14887), [#​14904](https://github.com/matrix-org/synapse/issues/14904), [#​14927](https://github.com/matrix-org/synapse/issues/14927), [#​14956](https://github.com/matrix-org/synapse/issues/14956), [#​14983](https://github.com/matrix-org/synapse/issues/14983), [#​14984](https://github.com/matrix-org/synapse/issues/14984), [#​14985](https://github.com/matrix-org/synapse/issues/14985), [#​14987](https://github.com/matrix-org/synapse/issues/14987), [#​14988](https://github.com/matrix-org/synapse/issues/14988), [#​14990](https://github.com/matrix-org/synapse/issues/14990), [#​14991](https://github.com/matrix-org/synapse/issues/14991), [#​14992](https://github.com/matrix-org/synapse/issues/14992), [#​15007](https://github.com/matrix-org/synapse/issues/15007))
- Use `StrCollection` to avoid potential bugs with `Collection[str]`. ([#​14922](https://github.com/matrix-org/synapse/issues/14922))
- Allow running the complement tests suites with the asyncio reactor enabled. ([#​14858](https://github.com/matrix-org/synapse/issues/14858))
- Improve performance of `/sync` in a few situations. ([#​14908](https://github.com/matrix-org/synapse/issues/14908), [#​14970](https://github.com/matrix-org/synapse/issues/14970))
- Document how to handle Dependabot pull requests. ([#​14916](https://github.com/matrix-org/synapse/issues/14916))
- Fix typo in release script. ([#​14920](https://github.com/matrix-org/synapse/issues/14920))
- Update build system requirements to allow building with poetry-core 1.5.0. ([#​14949](https://github.com/matrix-org/synapse/issues/14949), [#​15019](https://github.com/matrix-org/synapse/issues/15019))
- Add an [lnav](https://lnav.org) config file for Synapse logs to `/contrib/lnav`. ([#​14953](https://github.com/matrix-org/synapse/issues/14953))
- Faster joins: Refactor internal handling of servers in room to never store an empty list. ([#​14954](https://github.com/matrix-org/synapse/issues/14954))
- Faster joins: tag `v2/send_join/` requests to indicate if they served a partial join response. ([#​14950](https://github.com/matrix-org/synapse/issues/14950))
- Allow running `cargo` without the `extension-module` option. ([#​14965](https://github.com/matrix-org/synapse/issues/14965))
- Preparatory work for adding a denormalised event stream ordering column in the future. Contributed by Nick @​ Beeper ([@​fizzadar](https://github.com/fizzadar)). ([#​14979](https://github.com/matrix-org/synapse/issues/14979), [9cd7610](https://github.com/matrix-org/synapse/commit/9cd7610f86ab5051c9365dd38d1eec405a5f8ca6), [f10caa7](https://github.com/matrix-org/synapse/commit/f10caa73eee0caa91cf373966104d1ededae2aee); see [#​15014](https://github.com/matrix-org/synapse/issues/15014))
- Add tests for `_flatten_dict`. ([#​14981](https://github.com/matrix-org/synapse/issues/14981), [#​15002](https://github.com/matrix-org/synapse/issues/15002))
<details><summary>Dependabot updates</summary>
- Bump dtolnay/rust-toolchain from [`e645b0c`](https://github.com/matrix-org/synapse/commit/e645b0cf01249a964ec099494d38d2da0f0b349f) to [`9cd00a8`](https://github.com/matrix-org/synapse/commit/9cd00a88a73addc8617065438eff914dd08d0955). ([#​14968](https://github.com/matrix-org/synapse/issues/14968))
- Bump docker/build-push-action from 3 to 4. ([#​14952](https://github.com/matrix-org/synapse/issues/14952))
- Bump ijson from 3.1.4 to 3.2.0.post0. ([#​14935](https://github.com/matrix-org/synapse/issues/14935))
- Bump types-pyyaml from 6.0.12.2 to 6.0.12.3. ([#​14936](https://github.com/matrix-org/synapse/issues/14936))
- Bump types-jsonschema from 4.17.0.2 to 4.17.0.3. ([#​14937](https://github.com/matrix-org/synapse/issues/14937))
- Bump types-pillow from 9.4.0.3 to 9.4.0.5. ([#​14938](https://github.com/matrix-org/synapse/issues/14938))
- Bump hiredis from 2.0.0 to 2.1.1. ([#​14939](https://github.com/matrix-org/synapse/issues/14939))
- Bump hiredis from 2.1.1 to 2.2.1. ([#​14993](https://github.com/matrix-org/synapse/issues/14993))
- Bump types-setuptools from 65.6.0.3 to 67.1.0.0. ([#​14994](https://github.com/matrix-org/synapse/issues/14994))
- Bump prometheus-client from 0.15.0 to 0.16.0. ([#​14995](https://github.com/matrix-org/synapse/issues/14995))
- Bump anyhow from 1.0.68 to 1.0.69. ([#​14996](https://github.com/matrix-org/synapse/issues/14996))
- Bump serde_json from 1.0.91 to 1.0.92. ([#​14997](https://github.com/matrix-org/synapse/issues/14997))
- Bump isort from 5.11.4 to 5.11.5. ([#​14998](https://github.com/matrix-org/synapse/issues/14998))
- Bump phonenumbers from 8.13.4 to 8.13.5. ([#​14999](https://github.com/matrix-org/synapse/issues/14999))
</details>
### [`v1.76.0`](https://github.com/matrix-org/synapse/releases/tag/v1.76.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.75.0...v1.76.0)
# Synapse 1.76.0 (2023-01-31)
The 1.76 release is the first to enable faster joins ([MSC3706](https://github.com/matrix-org/matrix-spec-proposals/pull/3706) and [MSC3902](https://github.com/matrix-org/matrix-spec-proposals/pull/3902)) by default. Admins can opt-out: see [the upgrade notes](https://github.com/matrix-org/synapse/blob/release-v1.76/docs/upgrade.md#faster-joins-are-enabled-by-default) for more details.
The upgrade from 1.75 to 1.76 changes the account data replication streams in a backwards-incompatible manner. Server operators running a multi-worker deployment should consult [the upgrade notes](https://github.com/matrix-org/synapse/blob/release-v1.76/docs/upgrade.md#changes-to-the-account-data-replication-streams).
Those who are `poetry install`ing from source using our lockfile should ensure their poetry version is 1.3.2 or higher; [see upgrade notes](https://github.com/matrix-org/synapse/blob/release-v1.76/docs/upgrade.md#minimum-version-of-poetry-is-now-132).
## Notes on faster joins
The faster joins project sees the most benefit when joining a room with a large number of members (joined or historical). We expect it to be particularly useful for joining large public rooms like the [Matrix HQ](https://matrix.to/#/#matrix:matrix.org) or [Synapse Admins](https://matrix.to/#/#synapse:matrix.org) rooms.
After a faster join, Synapse considers that room "partially joined". In this state, you should be able to
- read incoming messages;
- see incoming state changes, e.g. room topic changes; and
- send messages, if the room is unencrypted.
Synapse has to spend more effort to complete the join in the background. Once this finishes, you will be able to
- send messages, if the room is in encrypted;
- retrieve room history from before your join, if permitted by the room settings; and
- access the full list of room members.
## Improved Documentation
- Describe the ideas and the internal machinery behind faster joins. ([#​14677](https://github.com/matrix-org/synapse/issues/14677))
# Synapse 1.76.0rc2 (2023-01-27)
## Bugfixes
- Faster joins: Fix a bug introduced in Synapse 1.69 where device list EDUs could fail to be handled after a restart when a faster join sync is in progress. ([#​14914](https://github.com/matrix-org/synapse/issues/14914))
## Internal Changes
- Faster joins: Improve performance of looking up partial-state status of rooms. ([#​14917](https://github.com/matrix-org/synapse/issues/14917))
# Synapse 1.76.0rc1 (2023-01-25)
## Features
- Update the default room version to [v10](https://spec.matrix.org/v1.5/rooms/v10/) ([MSC 3904](https://github.com/matrix-org/matrix-spec-proposals/pull/3904)). Contributed by [@​FSG-Cat](https://github.com/FSG-Cat). ([#​14111](https://github.com/matrix-org/synapse/issues/14111))
- Add a `set_displayname()` method to the module API for setting a user's display name. ([#​14629](https://github.com/matrix-org/synapse/issues/14629))
- Add a dedicated listener configuration for `health` endpoint. ([#​14747](https://github.com/matrix-org/synapse/issues/14747))
- Implement support for [MSC3890](https://github.com/matrix-org/matrix-spec-proposals/pull/3890): Remotely silence local notifications. ([#​14775](https://github.com/matrix-org/synapse/issues/14775))
- Implement experimental support for [MSC3930](https://github.com/matrix-org/matrix-spec-proposals/pull/3930): Push rules for ([MSC3381](https://github.com/matrix-org/matrix-spec-proposals/pull/3381)) Polls. ([#​14787](https://github.com/matrix-org/synapse/issues/14787))
- Per [MSC3925](https://github.com/matrix-org/matrix-spec-proposals/pull/3925), bundle the whole of the replacement with any edited events, and optionally inhibit server-side replacement. ([#​14811](https://github.com/matrix-org/synapse/issues/14811))
- Faster joins: always serve a partial join response to servers that request it with the stable query param. ([#​14839](https://github.com/matrix-org/synapse/issues/14839))
- Faster joins: allow non-lazy-loading ("eager") syncs to complete after a partial join by omitting partial state rooms until they become fully stated. ([#​14870](https://github.com/matrix-org/synapse/issues/14870))
- Faster joins: request partial joins by default. Admins can opt-out of this for the time being---see the upgrade notes. ([#​14905](https://github.com/matrix-org/synapse/issues/14905))
## Bugfixes
- Add index to improve performance of the `/timestamp_to_event` endpoint used for jumping to a specific date in the timeline of a room. ([#​14799](https://github.com/matrix-org/synapse/issues/14799))
- Fix a long-standing bug where Synapse would exhaust the stack when processing many federation requests where the remote homeserver has disconencted early. ([#​14812](https://github.com/matrix-org/synapse/issues/14812), [#​14842](https://github.com/matrix-org/synapse/issues/14842))
- Fix rare races when using workers. ([#​14820](https://github.com/matrix-org/synapse/issues/14820))
- Fix a bug introduced in Synapse 1.64.0 when using room version 10 with frozen events enabled. ([#​14864](https://github.com/matrix-org/synapse/issues/14864))
- Fix a long-standing bug where the `populate_room_stats` background job could fail on broken rooms. ([#​14873](https://github.com/matrix-org/synapse/issues/14873))
- Faster joins: Fix a bug in worker deployments where the room stats and user directory would not get updated when finishing a fast join until another event is sent or received. ([#​14874](https://github.com/matrix-org/synapse/issues/14874))
- Faster joins: Fix incompatibility with joins into restricted rooms where no local users have the ability to invite. ([#​14882](https://github.com/matrix-org/synapse/issues/14882))
- Fix a regression introduced in Synapse 1.69.0 which can result in database corruption when database migrations are interrupted on sqlite. ([#​14910](https://github.com/matrix-org/synapse/issues/14910))
## Updates to the Docker image
- Bump default Python version in the Dockerfile from 3.9 to 3.11. ([#​14875](https://github.com/matrix-org/synapse/issues/14875))
## Improved Documentation
- Include `x_forwarded` entry in the HTTP listener example configs and remove the remaining `worker_main_http_uri` entries. ([#​14667](https://github.com/matrix-org/synapse/issues/14667))
- Remove duplicate commands from the Code Style documentation page; point to the Contributing Guide instead. ([#​14773](https://github.com/matrix-org/synapse/issues/14773))
- Add missing documentation for `tag` to `listeners` section. ([#​14803](https://github.com/matrix-org/synapse/issues/14803))
- Updated documentation in configuration manual for `user_directory.search_all_users`. ([#​14818](https://github.com/matrix-org/synapse/issues/14818))
- Add `worker_manhole` to configuration manual. ([#​14824](https://github.com/matrix-org/synapse/issues/14824))
- Fix the example config missing the `id` field in [application service documentation](https://matrix-org.github.io/synapse/latest/application_services.html). ([#​14845](https://github.com/matrix-org/synapse/issues/14845))
- Minor corrections to the logging configuration documentation. ([#​14868](https://github.com/matrix-org/synapse/issues/14868))
- Document the export user data command. Contributed by [@​thezaidbintariq](https://github.com/thezaidbintariq). ([#​14883](https://github.com/matrix-org/synapse/issues/14883))
## Deprecations and Removals
- Poetry 1.3.2 or higher is now required when `poetry install`ing from source. ([#​14860](https://github.com/matrix-org/synapse/issues/14860))
## Internal Changes
- Faster remote room joins (worker mode): do not populate external hosts-in-room cache when sending events as this requires blocking for full state. ([#​14749](https://github.com/matrix-org/synapse/issues/14749))
- Enable Complement tests for Faster Remote Room Joins against worker-mode Synapse. ([#​14752](https://github.com/matrix-org/synapse/issues/14752))
- Add some clarifying comments and refactor a portion of the `Keyring` class for readability. ([#​14804](https://github.com/matrix-org/synapse/issues/14804))
- Add local poetry config files (`poetry.toml`) to `.gitignore`. ([#​14807](https://github.com/matrix-org/synapse/issues/14807))
- Add missing type hints. ([#​14816](https://github.com/matrix-org/synapse/issues/14816), [#​14885](https://github.com/matrix-org/synapse/issues/14885), [#​14889](https://github.com/matrix-org/synapse/issues/14889))
- Refactor push tests. ([#​14819](https://github.com/matrix-org/synapse/issues/14819))
- Re-enable some linting that was disabled when we switched to ruff. ([#​14821](https://github.com/matrix-org/synapse/issues/14821))
- Add `cargo fmt` and `cargo clippy` to the lint script. ([#​14822](https://github.com/matrix-org/synapse/issues/14822))
- Drop unused table `presence`. ([#​14825](https://github.com/matrix-org/synapse/issues/14825))
- Merge the two account data and the two device list replication streams. ([#​14826](https://github.com/matrix-org/synapse/issues/14826), [#​14833](https://github.com/matrix-org/synapse/issues/14833))
- Faster joins: use stable identifiers from [MSC3706](https://github.com/matrix-org/matrix-spec-proposals/pull/3706). ([#​14832](https://github.com/matrix-org/synapse/issues/14832), [#​14841](https://github.com/matrix-org/synapse/issues/14841))
- Add a parameter to control whether the federation client performs a partial state join. ([#​14843](https://github.com/matrix-org/synapse/issues/14843))
- Add check to avoid starting duplicate partial state syncs. ([#​14844](https://github.com/matrix-org/synapse/issues/14844))
- Add an early return when handling no-op presence updates. ([#​14855](https://github.com/matrix-org/synapse/issues/14855))
- Fix `wait_for_stream_position` to correctly wait for the right instance to advance its token. ([#​14856](https://github.com/matrix-org/synapse/issues/14856), [#​14872](https://github.com/matrix-org/synapse/issues/14872))
- Always notify replication when a stream advances automatically. ([#​14877](https://github.com/matrix-org/synapse/issues/14877))
- Reduce max time we wait for stream positions. ([#​14881](https://github.com/matrix-org/synapse/issues/14881))
- Faster joins: allow the resync process more time to fetch `/state` ids. ([#​14912](https://github.com/matrix-org/synapse/issues/14912))
- Bump regex from 1.7.0 to 1.7.1. ([#​14848](https://github.com/matrix-org/synapse/issues/14848))
- Bump peaceiris/actions-gh-pages from 3.9.1 to 3.9.2. ([#​14861](https://github.com/matrix-org/synapse/issues/14861))
- Bump ruff from 0.0.215 to 0.0.224. ([#​14862](https://github.com/matrix-org/synapse/issues/14862))
- Bump types-pillow from 9.4.0.0 to 9.4.0.3. ([#​14863](https://github.com/matrix-org/synapse/issues/14863))
- Bump types-opentracing from 2.4.10 to 2.4.10.1. ([#​14896](https://github.com/matrix-org/synapse/issues/14896))
- Bump ruff from 0.0.224 to 0.0.230. ([#​14897](https://github.com/matrix-org/synapse/issues/14897))
- Bump types-requests from 2.28.11.7 to 2.28.11.8. ([#​14899](https://github.com/matrix-org/synapse/issues/14899))
- Bump types-psycopg2 from 2.9.21.2 to 2.9.21.4. ([#​14900](https://github.com/matrix-org/synapse/issues/14900))
- Bump types-commonmark from 0.9.2 to 0.9.2.1. ([#​14901](https://github.com/matrix-org/synapse/issues/14901))
### [`v1.75.0`](https://github.com/matrix-org/synapse/releases/tag/v1.75.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.74.0...v1.75.0)
# Synapse 1.75.0 (2023-01-17)
No significant changes since 1.75.0rc2.
# Synapse 1.75.0rc2 (2023-01-12)
## Bugfixes
- Fix a bug introduced in Synapse 1.75.0rc1 where device lists could be miscalculated with some sync filters. ([#​14810](https://github.com/matrix-org/synapse/issues/14810))
- Fix race where calling `/members` or `/state` with an `at` parameter could fail for newly created rooms, when using multiple workers. ([#​14817](https://github.com/matrix-org/synapse/issues/14817))
# Synapse 1.75.0rc1 (2023-01-10)
## Features
- Add a `cached` function to `synapse.module_api` that returns a decorator to cache return values of functions. ([#​14663](https://github.com/matrix-org/synapse/issues/14663))
- Add experimental support for [MSC3391](https://github.com/matrix-org/matrix-spec-proposals/pull/3391) (removing account data). ([#​14714](https://github.com/matrix-org/synapse/issues/14714))
- Support [RFC7636](https://datatracker.ietf.org/doc/html/rfc7636) Proof Key for Code Exchange for OAuth single sign-on. ([#​14750](https://github.com/matrix-org/synapse/issues/14750))
- Support non-OpenID compliant userinfo claims for subject and picture. ([#​14753](https://github.com/matrix-org/synapse/issues/14753))
- Improve performance of `/sync` when filtering all rooms, message types, or senders. ([#​14786](https://github.com/matrix-org/synapse/issues/14786))
- Improve performance of the `/hierarchy` endpoint. ([#​14263](https://github.com/matrix-org/synapse/issues/14263))
## Bugfixes
- Fix the *MAU Limits* section of the Grafana dashboard relying on a specific `job` name for the workers of a Synapse deployment. ([#​14644](https://github.com/matrix-org/synapse/issues/14644))
- Fix a bug introduced in Synapse 1.70.0 which could cause spurious `UNIQUE constraint failed` errors in the `rotate_notifs` background job. ([#​14669](https://github.com/matrix-org/synapse/issues/14669))
- Ensure stream IDs are always updated after caches get invalidated with workers. Contributed by Nick @​ Beeper ([@​fizzadar](https://github.com/fizzadar)). ([#​14723](https://github.com/matrix-org/synapse/issues/14723))
- Remove the unspecced `device` field from `/pushrules` responses. ([#​14727](https://github.com/matrix-org/synapse/issues/14727))
- Fix a bug introduced in Synapse 1.73.0 where the `picture_claim` configured under `oidc_providers` was unused (the default value of `"picture"` was used instead). ([#​14751](https://github.com/matrix-org/synapse/issues/14751))
- Unescape HTML entities in URL preview titles making use of oEmbed responses. ([#​14781](https://github.com/matrix-org/synapse/issues/14781))
- Disable sending confirmation email when 3pid is disabled. ([#​14725](https://github.com/matrix-org/synapse/issues/14725))
## Improved Documentation
- Declare support for Python 3.11. ([#​14673](https://github.com/matrix-org/synapse/issues/14673))
- Fix `target_memory_usage` being used in the description for the actual `cache_autotune` sub-option `target_cache_memory_usage`. ([#​14674](https://github.com/matrix-org/synapse/issues/14674))
- Move `email` to Server section in config file documentation. ([#​14730](https://github.com/matrix-org/synapse/issues/14730))
- Fix broken links in the Synapse documentation. ([#​14744](https://github.com/matrix-org/synapse/issues/14744))
- Add missing worker settings to shared configuration documentation. ([#​14748](https://github.com/matrix-org/synapse/issues/14748))
- Document using Twitter as a OAuth 2.0 authentication provider. ([#​14778](https://github.com/matrix-org/synapse/issues/14778))
- Fix Synapse 1.74 upgrade notes to correctly explain how to install pyICU when installing Synapse from PyPI. ([#​14797](https://github.com/matrix-org/synapse/issues/14797))
- Update link to towncrier in contribution guide. ([#​14801](https://github.com/matrix-org/synapse/issues/14801))
- Use `htmltest` to check links in the Synapse documentation. ([#​14743](https://github.com/matrix-org/synapse/issues/14743))
## Internal Changes
- Faster remote room joins: stream the un-partial-stating of events over replication. ([#​14545](https://github.com/matrix-org/synapse/issues/14545), [#​14546](https://github.com/matrix-org/synapse/issues/14546))
- Use [ruff](https://github.com/charliermarsh/ruff/) instead of flake8. ([#​14633](https://github.com/matrix-org/synapse/issues/14633), [#​14741](https://github.com/matrix-org/synapse/issues/14741))
- Change `handle_new_client_event` signature so that a 429 does not reach clients on `PartialStateConflictError`, and internally retry when needed instead. ([#​14665](https://github.com/matrix-org/synapse/issues/14665))
- Remove dependency on jQuery on reCAPTCHA page. ([#​14672](https://github.com/matrix-org/synapse/issues/14672))
- Faster joins: make `compute_state_after_events` consistent with other state-fetching functions that take a `StateFilter`. ([#​14676](https://github.com/matrix-org/synapse/issues/14676))
- Add missing type hints. ([#​14680](https://github.com/matrix-org/synapse/issues/14680), [#​14681](https://github.com/matrix-org/synapse/issues/14681), [#​14687](https://github.com/matrix-org/synapse/issues/14687))
- Improve type annotations for the helper methods on a `CachedFunction`. ([#​14685](https://github.com/matrix-org/synapse/issues/14685))
- Check that the SQLite database file exists before porting to PostgreSQL. ([#​14692](https://github.com/matrix-org/synapse/issues/14692))
- Add `.direnv/` directory to .gitignore to prevent local state generated by the [direnv](https://direnv.net/) development tool from being committed. ([#​14707](https://github.com/matrix-org/synapse/issues/14707))
- Batch up replication requests to request the resyncing of remote users's devices. ([#​14716](https://github.com/matrix-org/synapse/issues/14716))
- If debug logging is enabled, log the `msgid`s of any to-device messages that are returned over `/sync`. ([#​14724](https://github.com/matrix-org/synapse/issues/14724))
- Change GHA CI job to follow best practices. ([#​14772](https://github.com/matrix-org/synapse/issues/14772))
- Switch to our fork of `dh-virtualenv` to work around an upstream Python 3.11 incompatibility. ([#​14774](https://github.com/matrix-org/synapse/issues/14774))
- Skip testing built wheels for PyPy 3.7 on Linux x86\_64 as we lack new required dependencies in the build environment. ([#​14802](https://github.com/matrix-org/synapse/issues/14802))
##### Dependabot updates
<details>
- Bump JasonEtco/create-an-issue from 2.8.1 to 2.8.2. ([#​14693](https://github.com/matrix-org/synapse/issues/14693))
- Bump anyhow from 1.0.66 to 1.0.68. ([#​14694](https://github.com/matrix-org/synapse/issues/14694))
- Bump blake2 from 0.10.5 to 0.10.6. ([#​14695](https://github.com/matrix-org/synapse/issues/14695))
- Bump serde_json from 1.0.89 to 1.0.91. ([#​14696](https://github.com/matrix-org/synapse/issues/14696))
- Bump serde from 1.0.150 to 1.0.151. ([#​14697](https://github.com/matrix-org/synapse/issues/14697))
- Bump lxml from 4.9.1 to 4.9.2. ([#​14698](https://github.com/matrix-org/synapse/issues/14698))
- Bump types-jsonschema from 4.17.0.1 to 4.17.0.2. ([#​14700](https://github.com/matrix-org/synapse/issues/14700))
- Bump sentry-sdk from 1.11.1 to 1.12.0. ([#​14701](https://github.com/matrix-org/synapse/issues/14701))
- Bump types-setuptools from 65.6.0.1 to 65.6.0.2. ([#​14702](https://github.com/matrix-org/synapse/issues/14702))
- Bump minimum PyYAML to 3.13. ([#​14720](https://github.com/matrix-org/synapse/issues/14720))
- Bump JasonEtco/create-an-issue from 2.8.2 to 2.9.1. ([#​14731](https://github.com/matrix-org/synapse/issues/14731))
- Bump towncrier from 22.8.0 to 22.12.0. ([#​14732](https://github.com/matrix-org/synapse/issues/14732))
- Bump isort from 5.10.1 to 5.11.4. ([#​14733](https://github.com/matrix-org/synapse/issues/14733))
- Bump attrs from 22.1.0 to 22.2.0. ([#​14734](https://github.com/matrix-org/synapse/issues/14734))
- Bump black from 22.10.0 to 22.12.0. ([#​14735](https://github.com/matrix-org/synapse/issues/14735))
- Bump sentry-sdk from 1.12.0 to 1.12.1. ([#​14736](https://github.com/matrix-org/synapse/issues/14736))
- Bump setuptools from 65.3.0 to 65.5.1. ([#​14738](https://github.com/matrix-org/synapse/issues/14738))
- Bump serde from 1.0.151 to 1.0.152. ([#​14758](https://github.com/matrix-org/synapse/issues/14758))
- Bump ruff from 0.0.189 to 0.0.206. ([#​14759](https://github.com/matrix-org/synapse/issues/14759))
- Bump pydantic from 1.10.2 to 1.10.4. ([#​14760](https://github.com/matrix-org/synapse/issues/14760))
- Bump gitpython from 3.1.29 to 3.1.30. ([#​14761](https://github.com/matrix-org/synapse/issues/14761))
- Bump pillow from 9.3.0 to 9.4.0. ([#​14762](https://github.com/matrix-org/synapse/issues/14762))
- Bump types-requests from 2.28.11.5 to 2.28.11.7. ([#​14763](https://github.com/matrix-org/synapse/issues/14763))
- Bump dawidd6/action-download-artifact from 2.24.2 to 2.24.3. ([#​14779](https://github.com/matrix-org/synapse/issues/14779))
- Bump peaceiris/actions-gh-pages from 3.9.0 to 3.9.1. ([#​14791](https://github.com/matrix-org/synapse/issues/14791))
- Bump types-pillow from 9.3.0.4 to 9.4.0.0. ([#​14792](https://github.com/matrix-org/synapse/issues/14792))
- Bump pyopenssl from 22.1.0 to 23.0.0. ([#​14793](https://github.com/matrix-org/synapse/issues/14793))
- Bump types-setuptools from 65.6.0.2 to 65.6.0.3. ([#​14794](https://github.com/matrix-org/synapse/issues/14794))
- Bump importlib-metadata from 4.2.0 to 6.0.0. ([#​14795](https://github.com/matrix-org/synapse/issues/14795))
- Bump ruff from 0.0.206 to 0.0.215. ([#​14796](https://github.com/matrix-org/synapse/issues/14796))
</details>
### [`v1.74.0`](https://github.com/matrix-org/synapse/releases/tag/v1.74.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.73.0...v1.74.0)
# Synapse 1.74.0 (2022-12-20)
## Improved Documentation
- Add release note and update documentation regarding optional ICU support in user search. ([#​14712](https://github.com/matrix-org/synapse/issues/14712))
# Synapse 1.74.0rc1 (2022-12-13)
## Features
- Improve user search for international display names. ([#​14464](https://github.com/matrix-org/synapse/issues/14464))
- Stop using deprecated `keyIds` parameter when calling `/_matrix/key/v2/server`. ([#​14490](https://github.com/matrix-org/synapse/issues/14490), [#​14525](https://github.com/matrix-org/synapse/issues/14525))
- Add new `push.enabled` config option to allow opting out of push notification calculation. ([#​14551](https://github.com/matrix-org/synapse/issues/14551), [#​14619](https://github.com/matrix-org/synapse/issues/14619))
- Advertise support for Matrix 1.5 on `/_matrix/client/versions`. ([#​14576](https://github.com/matrix-org/synapse/issues/14576))
- Improve opentracing and logging for to-device message handling. ([#​14598](https://github.com/matrix-org/synapse/issues/14598))
- Allow selecting "prejoin" events by state keys in addition to event types. ([#​14642](https://github.com/matrix-org/synapse/issues/14642))
## Bugfixes
- Fix a long-standing bug where a device list update might not be sent to clients in certain circumstances. ([#​14435](https://github.com/matrix-org/synapse/issues/14435), [#​14592](https://github.com/matrix-org/synapse/issues/14592), [#​14604](https://github.com/matrix-org/synapse/issues/14604))
- Suppress a spurious warning when `POST /rooms/<room_id>/<membership>/`, `POST /join/<room_id_or_alias`, or the unspecced `PUT /join/<room_id_or_alias>/<txn_id>` receive an empty HTTP request body. ([#​14600](https://github.com/matrix-org/synapse/issues/14600))
- Return spec-compliant JSON errors when unknown endpoints are requested. ([#​14620](https://github.com/matrix-org/synapse/issues/14620), [#​14621](https://github.com/matrix-org/synapse/issues/14621))
- Update html templates to load images over HTTPS. Contributed by [@​ashfame](https://github.com/ashfame). ([#​14625](https://github.com/matrix-org/synapse/issues/14625))
- Fix a long-standing bug where the user directory would return 1 more row than requested. ([#​14631](https://github.com/matrix-org/synapse/issues/14631))
- Reject invalid read receipt requests with empty room or event IDs. Contributed by Nick @​ Beeper ([@​fizzadar](https://github.com/fizzadar)). ([#​14632](https://github.com/matrix-org/synapse/issues/14632))
- Fix a bug introduced in Synapse 1.67.0 where not specifying a config file or a server URL would lead to the `register_new_matrix_user` script failing. ([#​14637](https://github.com/matrix-org/synapse/issues/14637))
- Fix a long-standing bug where the user directory and room/user stats might be out of sync. ([#​14639](https://github.com/matrix-org/synapse/issues/14639), [#​14643](https://github.com/matrix-org/synapse/issues/14643))
- Fix a bug introduced in Synapse 1.72.0 where the background updates to add non-thread unique indexes on receipts would fail if they were previously interrupted. ([#​14650](https://github.com/matrix-org/synapse/issues/14650))
- Improve validation of field size limits in events. ([#​14664](https://github.com/matrix-org/synapse/issues/14664))
- Fix bugs introduced in Synapse 1.55.0 and 1.69.0 where application services would not be notified of events in the correct rooms, due to stale caches. ([#​14670](https://github.com/matrix-org/synapse/issues/14670))
## Improved Documentation
- Update worker settings for `pusher` and `federation_sender` functionality. ([#​14493](https://github.com/matrix-org/synapse/issues/14493))
- Add links to third party package repositories, and point to the bug which highlights Ubuntu's out-of-date packages. ([#​14517](https://github.com/matrix-org/synapse/issues/14517))
- Remove old, incorrect minimum postgres version note and replace with a link to the [Dependency Deprecation Policy](https://matrix-org.github.io/synapse/v1.73/deprecation_policy.html). ([#​14590](https://github.com/matrix-org/synapse/issues/14590))
- Add Single-Sign On setup instructions for Mastodon-based instances. ([#​14594](https://github.com/matrix-org/synapse/issues/14594))
- Change `turn_allow_guests` example value to lowercase `true`. ([#​14634](https://github.com/matrix-org/synapse/issues/14634))
## Internal Changes
- Optimise push badge count calculations. Contributed by Nick @​ Beeper ([@​fizzadar](https://github.com/fizzadar)). ([#​14255](https://github.com/matrix-org/synapse/issues/14255))
- Faster remote room joins: stream the un-partial-stating of rooms over replication. ([#​14473](https://github.com/matrix-org/synapse/issues/14473), [#​14474](https://github.com/matrix-org/synapse/issues/14474))
- Share the `ClientRestResource` for both workers and the main process. ([#​14528](https://github.com/matrix-org/synapse/issues/14528))
- Add `--editable` flag to `complement.sh` which uses an editable install of Synapse for faster turn-around times whilst developing iteratively. ([#​14548](https://github.com/matrix-org/synapse/issues/14548))
- Faster joins: use servers list approximation to send read receipts when in partial state instead of waiting for the full state of the room. ([#​14549](https://github.com/matrix-org/synapse/issues/14549))
- Modernize unit tests configuration related to workers. ([#​14568](https://github.com/matrix-org/synapse/issues/14568))
- Bump jsonschema from 4.17.0 to 4.17.3. ([#​14591](https://github.com/matrix-org/synapse/issues/14591))
- Fix Rust lint CI. ([#​14602](https://github.com/matrix-org/synapse/issues/14602))
- Bump JasonEtco/create-an-issue from 2.5.0 to 2.8.1. ([#​14607](https://github.com/matrix-org/synapse/issues/14607))
- Alter some unit test environment parameters to decrease time spent running tests. ([#​14610](https://github.com/matrix-org/synapse/issues/14610))
- Switch to Go recommended installation method for `gotestfmt` template in CI. ([#​14611](https://github.com/matrix-org/synapse/issues/14611))
- Bump phonenumbers from 8.13.0 to 8.13.1. ([#​14612](https://github.com/matrix-org/synapse/issues/14612))
- Bump types-setuptools from 65.5.0.3 to 65.6.0.1. ([#​14613](https://github.com/matrix-org/synapse/issues/14613))
- Bump twine from 4.0.1 to 4.0.2. ([#​14614](https://github.com/matrix-org/synapse/issues/14614))
- Bump types-requests from 2.28.11.2 to 2.28.11.5. ([#​14615](https://github.com/matrix-org/synapse/issues/14615))
- Bump cryptography from 38.0.3 to 38.0.4. ([#​14616](https://github.com/matrix-org/synapse/issues/14616))
- Remove useless cargo install with apt from Dockerfile. ([#​14636](https://github.com/matrix-org/synapse/issues/14636))
- Bump certifi from 2021.10.8 to 2022.12.7. ([#​14645](https://github.com/matrix-org/synapse/issues/14645))
- Bump flake8-bugbear from 22.10.27 to 22.12.6. ([#​14656](https://github.com/matrix-org/synapse/issues/14656))
- Bump packaging from 21.3 to 22.0. ([#​14657](https://github.com/matrix-org/synapse/issues/14657))
- Bump types-pillow from 9.3.0.1 to 9.3.0.4. ([#​14658](https://github.com/matrix-org/synapse/issues/14658))
- Bump serde from 1.0.148 to 1.0.150. ([#​14659](https://github.com/matrix-org/synapse/issues/14659))
- Bump phonenumbers from 8.13.1 to 8.13.2. ([#​14660](https://github.com/matrix-org/synapse/issues/14660))
- Bump authlib from 1.1.0 to 1.2.0. ([#​14661](https://github.com/matrix-org/synapse/issues/14661))
- Move `StateFilter` to `synapse.types`. ([#​14668](https://github.com/matrix-org/synapse/issues/14668))
- Improve type hints. ([#​14597](https://github.com/matrix-org/synapse/issues/14597), [#​14646](https://github.com/matrix-org/synapse/issues/14646), [#​14671](https://github.com/matrix-org/synapse/issues/14671))
### [`v1.73.0`](https://github.com/matrix-org/synapse/releases/tag/v1.73.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.72.0...v1.73.0)
# Synapse 1.73.0 (2022-12-06)
Please note that legacy Prometheus metric names have been removed in this release; see [the upgrade notes](https://github.com/matrix-org/synapse/blob/release-v1.73/docs/upgrade.md#legacy-prometheus-metric-names-have-now-been-removed) for more details.
No significant changes since 1.73.0rc2.
# Synapse 1.73.0rc2 (2022-12-01)
## Bugfixes
- Fix a regression in Synapse 1.73.0rc1 where Synapse's main process would stop responding to HTTP requests when a user with a large number of devices logs in. ([#​14582](https://github.com/matrix-org/synapse/issues/14582))
# Synapse 1.73.0rc1 (2022-11-29)
## Features
- Speed-up `/messages` with `filter_events_for_client` optimizations. ([#​14527](https://github.com/matrix-org/synapse/issues/14527))
- Improve DB performance by reducing amount of data that gets read in `device_lists_changes_in_room`. ([#​14534](https://github.com/matrix-org/synapse/issues/14534))
- Adds support for handling avatar in SSO OIDC login. Contributed by [@​ashfame](https://github.com/ashfame). ([#​13917](https://github.com/matrix-org/synapse/issues/13917))
- Move MSC3030 `/timestamp_to_event` endpoints to stable `v1` location (`/_matrix/client/v1/rooms/<roomID>/timestamp_to_event?ts=<timestamp>&dir=<direction>`, `/_matrix/federation/v1/timestamp_to_event/<roomID>?ts=<timestamp>&dir=<direction>`). ([#​14471](https://github.com/matrix-org/synapse/issues/14471))
- Reduce database load of [Client-Server endpoints](https://spec.matrix.org/v1.5/client-server-api/#aggregations) which return bundled aggregations. ([#​14491](https://github.com/matrix-org/synapse/issues/14491), [#​14508](https://github.com/matrix-org/synapse/issues/14508), [#​14510](https://github.com/matrix-org/synapse/issues/14510))
- Add unstable support for an Extensible Events room version (`org.matrix.msc1767.10`) via [MSC1767](https://github.com/matrix-org/matrix-spec-proposals/pull/1767), [MSC3931](https://github.com/matrix-org/matrix-spec-proposals/pull/3931), [MSC3932](https://github.com/matrix-org/matrix-spec-proposals/pull/3932), and [MSC3933](https://github.com/matrix-org/matrix-spec-proposals/pull/3933). ([#​14520](https://github.com/matrix-org/synapse/issues/14520), [#​14521](https://github.com/matrix-org/synapse/issues/14521), [#​14524](https://github.com/matrix-org/synapse/issues/14524))
- Prune user's old devices on login if they have too many. ([#​14038](https://github.com/matrix-org/synapse/issues/14038), [#​14580](https://github.com/matrix-org/synapse/issues/14580))
## Bugfixes
- Fix a long-standing bug where paginating from the start of a room did not work. Contributed by [@​gnunicorn](https://github.com/gnunicorn). ([#​14149](https://github.com/matrix-org/synapse/issues/14149))
- Fix a bug introduced in Synapse 1.58.0 where a user with presence state `org.matrix.msc3026.busy` would mistakenly be set to `online` when calling `/sync` or `/events` on a worker process. ([#​14393](https://github.com/matrix-org/synapse/issues/14393))
- Fix a bug introduced in Synapse 1.70.0 where a receipt's thread ID was not sent over federation. ([#​14466](https://github.com/matrix-org/synapse/issues/14466))
- Fix a long-standing bug where the [List media admin API](https://matrix-org.github.io/synapse/latest/admin_api/media_admin_api.html#list-all-media-in-a-room) would fail when processing an image with broken thumbnail information. ([#​14537](https://github.com/matrix-org/synapse/issues/14537))
- Fix a bug introduced in Synapse 1.67.0 where two logging context warnings would be logged on startup. ([#​14574](https://github.com/matrix-org/synapse/issues/14574))
- In application service transactions that include the experimental `org.matrix.msc3202.device_one_time_key_counts` key, include a duplicate key of `org.matrix.msc3202.device_one_time_keys_count` to match the name proposed by [MSC3202](https://github.com/matrix-org/matrix-spec-proposals/pull/3202). ([#​14565](https://github.com/matrix-org/synapse/issues/14565))
- Fix a bug introduced in Synapse 0.9 where Synapse would fail to fetch server keys whose IDs contain a forward slash. ([#​14490](https://github.com/matrix-org/synapse/issues/14490))
## Improved Documentation
- Fixed link to 'Synapse administration endpoints'. ([#​14499](https://github.com/matrix-org/synapse/issues/14499))
## Deprecations and Removals
- Remove legacy Prometheus metrics names. They were deprecated in Synapse v1.69.0 and disabled by default in Synapse v1.71.0. ([#​14538](https://github.com/matrix-org/synapse/issues/14538))
## Internal Changes
- Improve type hinting throughout Synapse. ([#​14055](https://github.com/matrix-org/synapse/issues/14055), [#​14412](https://github.com/matrix-org/synapse/issues/14412), [#​14529](https://github.com/matrix-org/synapse/issues/14529), [#​14452](https://github.com/matrix-org/synapse/issues/14452)).
- Remove old stream ID tracking code. Contributed by Nick [@​Beeper](https://github.com/Beeper) ([@​fizzadar](https://github.com/fizzadar)). ([#​14376](https://github.com/matrix-org/synapse/issues/14376), [#​14468](https://github.com/matrix-org/synapse/issues/14468))
- Remove the `worker_main_http_uri` configuration setting. This is now handled via internal replication. ([#​14400](https://github.com/matrix-org/synapse/issues/14400), [#​14476](https://github.com/matrix-org/synapse/issues/14476))
- Refactor `federation_sender` and `pusher` configuration loading. ([#​14496](https://github.com/matrix-org/synapse/issues/14496))
([#​14509](https://github.com/matrix-org/synapse/issues/14509), [#​14573](https://github.com/matrix-org/synapse/issues/14573))
- Faster joins: do not wait for full state when creating events to send. ([#​14403](https://github.com/matrix-org/synapse/issues/14403))
- Faster joins: filter out non local events when a room doesn't have its full state. ([#​14404](https://github.com/matrix-org/synapse/issues/14404))
- Faster joins: send events to initial list of servers if we don't have the full state yet. ([#​14408](https://github.com/matrix-org/synapse/issues/14408))
- Faster joins: use servers list approximation received during `send_join` (potentially updated with received membership events) in `assert_host_in_room`. ([#​14515](https://github.com/matrix-org/synapse/issues/14515))
- Fix type logic in TCP replication code that prevented correctly ignoring blank commands. ([#​14449](https://github.com/matrix-org/synapse/issues/14449))
- Remove option to skip locking of tables when performing emulated upserts, to avoid a class of bugs in future. ([#​14469](https://github.com/matrix-org/synapse/issues/14469))
- `scripts-dev/federation_client`: Fix routing on servers with `.well-known` files. ([#​14479](https://github.com/matrix-org/synapse/issues/14479))
- Reduce default third party invite rate limit to 216 invites per day. ([#​14487](https://github.com/matrix-org/synapse/issues/14487))
- Refactor conversion of device list changes in room to outbound pokes to track unconverted rows using a `(stream ID, room ID)` position instead of updating the `converted_to_destinations` flag on every row. ([#​14516](https://github.com/matrix-org/synapse/issues/14516))
- Add more prompts to the bug report form. ([#​14522](https://github.com/matrix-org/synapse/issues/14522))
- Extend editorconfig rules on indent and line length to `.pyi` files. ([#​14526](https://github.com/matrix-org/synapse/issues/14526))
- Run Rust CI when `Cargo.lock` changes. This is particularly useful for dependabot updates. ([#​14571](https://github.com/matrix-org/synapse/issues/14571))
- Fix a possible variable shadow in `create_new_client_event`. ([#​14575](https://github.com/matrix-org/synapse/issues/14575))
- Bump various dependencies in the `poetry.lock` file and in CI scripts. ([#​14557](https://github.com/matrix-org/synapse/issues/14557), [#​14559](https://github.com/matrix-org/synapse/issues/14559), [#​14560](https://github.com/matrix-org/synapse/issues/14560), [#​14500](https://github.com/matrix-org/synapse/issues/14500), [#​14501](https://github.com/matrix-org/synapse/issues/14501), [#​14502](https://github.com/matrix-org/synapse/issues/14502), [#​14503](https://github.com/matrix-org/synapse/issues/14503), [#​14504](https://github.com/matrix-org/synapse/issues/14504), [#​14505](https://github.com/matrix-org/synapse/issues/14505)).
### [`v1.72.0`](https://github.com/matrix-org/synapse/releases/tag/v1.72.0)
[Compare Source](https://github.com/matrix-org/synapse/compare/v1.71.0...v1.72.0)
# Synapse 1.72.0 (2022-11-22)
Please note that Synapse now only supports PostgreSQL 11+, because PostgreSQL 10 has reached end-of-life, c.f. our [Deprecation Policy](https://github.com/matrix-org/synapse/blob/develop/docs/deprecation_policy.md).
## Bugfixes
- Update forgotten references to legacy metrics in the included Grafana dashboard. ([#​14477](https://github.com/matrix-org/synapse/issues/14477))
# Synapse 1.72.0rc1 (2022-11-16)
## Features
- Add experimental support for [MSC3912](https://github.com/matrix-org/matrix-spec-proposals/pull/3912): Relation-based redactions. ([#​14260](https://github.com/matrix-org/synapse/issues/14260))
- Build Debian packages for Ubuntu 22.10 (Kinetic Kudu). ([#​14396](https://github.com/matrix-org/synapse/issues/14396))
- Add an [Admin API](https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/index.html) endpoint for user lookup based on third-party ID (3PID). Contributed by [@​ashfame](https://github.com/ashfame). ([#​14405](https://github.com/matrix-org/synapse/issues/14405))
- Faster joins: include heroes' membership events in the partial join response, for rooms without a name or canonical alias. ([#​14442](https://github.com/matrix-org/synapse/issues/14442))
## Bugfixes
- Faster joins: do not block creation of or queries for room aliases during the resync. ([#​14292](https://github.com/matrix-org/synapse/issues/14292))
- Fix a bug introduced in Synapse 1.64.0rc1 which could cause log spam when fetching events from other homeservers. ([#​14347](https://github.com/matrix-org/synapse/issues/14347))
- Fix a bug introduced in 1.66 which would not send certain pushrules to clients. Contributed by Nico. ([#​14356](https://github.com/matrix-org/synapse/issues/14356))
- Fix a bug introduced in v1.71.0rc1 where the power level event was incorrectly created during initial room creation. ([#​14361](https://github.com/matrix-org/synapse/issues/14361))
- Fix the refresh token endpoint to be under /r0 and /v3 instead of /v1. Contributed by Tulir @​ Beeper. ([#​14364](https://github.com/matrix-org/synapse/issues/14364))
- Fix a long-standing bug where Synapse would raise an error when encountering an unrecognised field in a `/sync` filter, instead of ignoring it for forward compatibility. ([#​14369](https://github.com/matrix-org/synapse/issues/14369))
- Fix a background database update, introduced in Synapse 1.64.0, which could cause poor database performance. ([#​14374](https://github.com/matrix-org/synapse/issues/14374))
- Fix PostgreSQL sometimes using table scans for queries against the `event_search` table, taking a long time and a large amount of IO. ([#​14409](https://github.com/matrix-org/synapse/issues/14409))
- Fix rendering of some HTML templates (including emails). Introduced in v1.71.0. ([#​14448](https://github.com/matrix-org/synapse/issues/14448))
- Fix a bug introduced in Synapse 1.70.0 where the background updates to add non-thread unique indexes on receipts could fail when upgrading from 1.67.0 or earlier. ([#​14453](https://github.com/matrix-org/synapse/issues/14453))
## Updates to the Docker image
- Add all Stream Writer worker types to `configure_workers_and_start.py`. ([#​14197](https://github.com/matrix-org/synapse/issues/14197))
- Remove references to legacy worker types in the multi-worker Dockerfile. ([#​14294](https://github.com/matrix-org/synapse/issues/14294))
## Improved Documentation
- Upload documentation PRs to Netlify. ([#​12947](https://github.com/matrix-org/synapse/issues/12947), [#​14370](https://github.com/matrix-org/synapse/issues/14370))
- Add addtional TURN server configuration example based on [eturnal](https://github.com/processone/eturnal) and adjust general TURN server doc structure. ([#​14293](https://github.com/matrix-org/synapse/issues/14293))
- Add example on how to load balance /sync requests. Contributed by [aceArt](https://aceart.de). ([#​14297](https://github.com/matrix-org/synapse/issues/14297))
- Edit sample Nginx reverse proxy configuration to use HTTP/1.1. Contributed by Brad Jones. ([#​14414](https://github.com/matrix-org/synapse/issues/14414))
## Deprecations and Removals
- Remove support for PostgreSQL 10. ([#​14392](https://github.com/matrix-org/synapse/issues/14392), [#​14397](https://github.com/matrix-org/synapse/issues/14397))
## Internal Changes
- Run unit tests against Python 3.11. ([#​13812](https://github.com/matrix-org/synapse/issues/13812))
- Add TLS support for generic worker endpoints. ([#​14128](https://github.com/matrix-org/synapse/issues/14128), [#​14455](https://github.com/matrix-org/synapse/issues/14455))
- Switch to a maintained action for installing Rust in CI. ([#​14313](https://github.com/matrix-org/synapse/issues/14313))
- Add override ability to `complement.sh` command line script to request certain types of workers. ([#​14324](https://github.com/matrix-org/synapse/issues/14324))
- Enabling testing of [MSC3874](https://github.com/matrix-org/matrix-spec-proposals/pull/3874) (filtering of `/messages` by relation type) in complement. ([#​14339](https://github.com/matrix-org/synapse/issues/14339))
- Concisely log a failure to resolve state due to missing `prev_events`. ([#​14346](https://github.com/matrix-org/synapse/issues/14346))
- Use a maintained Github action to install Rust. ([#​14351](https://github.com/matrix-org/synapse/issues/14351))
- Cleanup old worker datastore classes. Contributed by Nick @​ Beeper ([@​fizzadar](https://github.com/fizzadar)). ([#​14375](https://github.com/matrix-org/synapse/issues/14375))
- Test against PostgreSQL 15 in CI. ([#​14394](https://github.com/matrix-org/synapse/issues/14394))
- Remove unreachable code. ([#​14410](https://github.com/matrix-org/synapse/issues/14410))
- Clean-up event persistence code. ([#​14411](https://github.com/matrix-org/synapse/issues/14411))
- Update docstring to clarify that `get_partial_state_events_batch` does not just give you completely arbitrary partial-state events. ([#​14417](https://github.com/matrix-org/synapse/issues/14417))
- Fix mypy errors introduced by bumping the locked version of `attrs` and `gitpython`. ([#​14433](https://github.com/matrix-org/synapse/issues/14433))
- Make Dependabot only bump Rust deps in the lock file. ([#​14434](https://github.com/matrix-org/synapse/issues/14434))
- Fix an incorrect stub return type for `PushRuleEvaluator.run`. ([#​14451](https://github.com/matrix-org/synapse/issues/14451))
- Improve performance of `/context` in large rooms. ([#​14461](https://github.com/matrix-org/synapse/issues/14461))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTUuMiIsInVwZGF0ZWRJblZlciI6IjM1LjExNS4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
v1.71.0->v1.85.2Release Notes
matrix-org/synapse
v1.85.2Compare Source
Synapse 1.85.2 (2023-06-08)
Bugfixes
v1.85.1Compare Source
Synapse 1.85.1 (2023-06-07)
Note: this release only fixes a bug that stopped some deployments from upgrading to v1.85.0. There is no need to upgrade to v1.85.1 if successfully running v1.85.0.
Bugfixes
v1.85.0Compare Source
Synapse 1.85.0 (2023-06-06)
No significant changes since 1.85.0rc2.
Security advisory
The following issues are fixed in 1.85.0 (and RCs).
GHSA-26c5-ppr8-f33p / CVE-2023-32682 — Low Severity
It may be possible for a deactivated user to login when using uncommon configurations.
GHSA-98px-6486-j7qc / CVE-2023-32683 — Low Severity
A discovered oEmbed or image URL can bypass the
url_preview_url_blacklistsetting potentially allowing server side request forgery or bypassing network policies. Impact is limited to IP addresses allowed by theurl_preview_ip_range_blacklistsetting (by default this only allows public IPs).See the advisories for more details. If you have any questions, email security@matrix.org.
Synapse 1.85.0rc2 (2023-06-01)
Bugfixes
Deprecations and Removals
/registerendpoint with an unspecceduserproperty for application services. (#15703)Internal Changes
populate_full_user_id_user_filtersandpopulate_full_user_id_profiles. (#15700)Synapse 1.85.0rc1 (2023-05-30)
Features
Bugfixes
url_preview_url_blacklistconfiguration setting was not applied to oEmbed or image URLs found while previewing a URL. (#15601)app_service_config_filesconfig option fails would be incorrectly formatted. (#15614)org.matrix.login.jwtlogin type (if enabled). (#15624)Improved Documentation
Deprecations and Removals
Internal Changes
full_user_idof tablesprofilesanduser_filters. (#15537)worker_namewhen constructing the request. (#15578)thread_idcolumn onevent_push_actions,event_push_actions_staging, andevent_push_summarynon-null. (#15597)stateandstate_groupstorage-related operations to better picture what's happening when tracing. (#15610, #15647)ConfigErrors to beStrSequences instead ofIterable[str]s. (#15615)_trial_temp/test.log). (#15636)trialtest runs. (#15630)HomeServerConfigcache in trial test runs. (#15646)TransportLayerClient. (#15663)Updates to locked dependencies
v1.84.1Compare Source
Synapse 1.84.1 (2023-05-26)
This patch release fixes a major issue with homeservers that do not have an
instance_mapdefined but which do use workers.If you have already upgraded to Synapse 1.84.0 and your homeserver is working normally, then there is no need to update to this patch release.
Bugfixes
instance_mapwas provided. (#15672)Internal Changes
dchandnotify-sendto the development Nix flake so that the release script can be used. (#15673)v1.84.0Compare Source
Synapse 1.84.0 (2023-05-23)
The
worker_replication_*configuration settings have been deprecated in favour of configuring the main process consistently with other instances in theinstance_map. The deprecated settings will be removed in Synapse v1.88.0, but changing your configuration in advance is recommended. See the upgrade notes for more information.Bugfixes
Synapse 1.84.0rc1 (2023-05-16)
Features
forget_rooms_on_leaveconfig option to automatically forget rooms when users leave them or are removed from them. (#15224)/_matrix/client/versions. (#15559)Bugfixes
"m.push_rules"via account data. (#15554, #15555)Deprecations and Removals
worker_replication_*based settings in worker configuration yaml by placing this data directly on theinstance_mapinstead. (#15491)Updates to the Docker image
Improved Documentation
statistics/database/roomsadmin API in documentation. (#15560)Internal Changes
Clientfor use with HTTP Replication between workers. Contributed by Jason Little. (#15470)event_push_actions. (#15531)xmlsecandmdbookpackages and switch back to the upstream cachix/devenv repo in the nix development environment. (#15532, #15533, #15545)"dont_notify"from the list of actions in default push rules. (#15534)/user/devicesfederation queries to application services for MSC3984. (#15539)is_mine_server_namemethod. (#15542)PODMANenvironment variable toscripts-dev/complement.sh. (#15543)org.matrix.msc3981info to/_matrix/client/versions. (#15558)/_matrix/client/versionsif the experimental implementation is enabled. (#15562)pip installto use setuptools_rust 1.6.0 when building Synapse. (#15570)run_as_background_processfrom the module API. (#15577)v1.83.0Compare Source
Synapse 1.83.0 (2023-05-09)
No significant changes since 1.83.0rc1.
Synapse 1.83.0rc1 (2023-05-02)
Features
Bugfixes
Improved Documentation
Internal Changes
full_user_idto tablesprofilesanduser_filters. (#15458)/keys/claimrequest. (#15462)v1.82.0Compare Source
Synapse 1.82.0 (2023-04-25)
No significant changes since 1.82.0rc1.
Synapse 1.82.0rc1 (2023-04-18)
Features
/directory/room/{roomAlias}endpoint on workers. (#15333)instance_mapconfiguration loading. (#15431)/capabilitiesendpoint on workers. (#15436)Bugfixes
on_logged_outmodule hooks will be called before the deletion of pushers. (#15410)app_service_config_filesis not a list. (#15425)RefreshTokenServlet(/_matrix/client/(r0|v3|unstable)/refresh) on workers. (#15428)Improved Documentation
delete_stale_devices_afterbackground job always runs on the main process. (#15452)Deprecations and Removals
Internal Changes
stream_ordering_to_exterm. (#15382, #15429)creatorto create events. (#15394)redactskey to acontentproperty. (#15395)SimpleHttpClientto pull out a base class. (#15427)TestSSOHandler. (#15433)/_matrix/static/. (#15438)v1.81.0Compare Source
Synapse 1.81.0 (2023-04-11)
Synapse now attempts the versioned appservice paths before falling back to the legacy paths. Usage of the legacy routes should be considered deprecated.
Additionally, Synapse has supported sending the application service access token via the
Authorizationheader since v1.70.0. For backwards compatibility it is also sent as theaccess_tokenquery parameter. This is insecure and should be considered deprecated.A future version of Synapse (v1.88.0 or later) will remove support for legacy application service routes and query parameter authorization.
No significant changes since 1.81.0rc2.
Synapse 1.81.0rc2 (2023-04-06)
Bugfixes
set_device_id_for_pushers_txnbackground update crash. (#15391)Internal Changes
Synapse 1.81.0rc1 (2023-04-04)
Features
/password_policyendpoint on workers. (#15331)Bugfixes
m.room.messageevents would not be correctly bundled. (#15295)to ensure that the sqlite database passed to the script exists before trying to port from it. (#15306)
_INT_STREAM_POSkey. (#15309)Improved Documentation
Internal Changes
immutabledictinstead offrozendict. (#15113)device_idinstead of theaccess_token_idfor various operations. (#15280)e12eda5tofc32530. (#15304)TRUNCATEon Postgres when clearing the user directory tables. (#15316).gitignorerule for the Complement source tarball downloaded automatically bycomplement.sh. (#15319)v1.80.0Compare Source
Synapse 1.80.0 (2023-03-28)
No significant changes since 1.80.0rc2.
Synapse 1.80.0rc2 (2023-03-22)
Bugfixes
POST /_matrix/client/v3/rooms/{roomId}/report/{eventId}endpoint would return the wrong error if the user did not have permission to view the event. This aligns Synapse's implementation with MSC2249. (#15298, #15300)would fail to open the SQLite database. (#15301)
Synapse 1.80.0rc1 (2023-03-21)
Features
event_property_containspush condition. (#15187)/register/availableendpoint on workers. (#15268)Bugfixes
Updates to the Docker image
cryptographywheel. (#15239)ghcr.io/matrix-org/synapse). (#15281, #15282)Improved Documentation
Internal Changes
Synapse-Trace-Idtoaccess-control-expose-headersheader. (#14974)HttpTransactionCacheuse theRequesterin addition of the just theRequestto build the transaction key. (#15200)destinationsanddestination_roomstables. (#15247)_set_destination_retry_timings_emulated. (#15266)configure_workers_and_startscript used in Complement tests compatible with older versions of Python. (#15275)/versionsflag for MSC3952. (#15293)v1.79.0Compare Source
Synapse 1.79.0 (2023-03-14)
No significant changes since 1.79.0rc2.
Synapse 1.79.0rc2 (2023-03-13)
Bugfixes
on_remove_user_third_party_identifiermodule API callback would be a no-op. (#15227)Internal Changes
filter_events_for_server. (#15240)Synapse 1.79.0rc1 (2023-03-07)
Features
on_add_user_third_party_identifierandon_remove_user_third_party_identifier. (#15044)/filterClient-Server APIs on workers. (#15134)event_property_ispush condition. (#15185)Bugfixes
transaction_idin the events included in many endpoints' responses. (#15174)405error. (#15180)Updates to the Docker image
Improved Documentation
on_new_eventmodule API callback runs on. (#15071)federation_verify_certificatesin configuration documentation. (#15139)MatrixFederationHttpClientmethods. (#15148)registration_shared_secret_pathon startup. (#15168)Deprecations and Removals
on_threepid_bindmodule callback, to be replaced byon_add_user_third_party_identifier. See upgrade notes. (#15044)room_aliasfield from the/createRoomresponse. (#15093)PUTon the/knock/{roomIdOrAlias}endpoint. (#15189)typeparameter to the/thumbnailendpoint. (#15137)PUTmethod on the unstable/rooms/<room_id>/batch_sendendpoint. (#15199)Internal Changes
FileExfiltrationWriter. (#15095)get_event_reportandget_event_reports_paginatefromRoomStoretoRoomWorkerStore. (#15165)get_next_txnmethod toStreamIdGeneratorto matchMultiWriterIdGenerator. (#15191)AbstractStreamIdTrackerandAbstractStreamIdGenerator. (#15192)ruff. (#15194)test_icu_word_boundary_punctuationso that it passes with the ICU versions available in Alpine and macOS. (#15177)Locked dependency updates
v1.78.0Compare Source
Synapse 1.78.0 (2023-02-28)
Bugfixes
Synapse 1.78.0rc1 (2023-02-21)
Features
exact_event_matchpush rule condition from MSC3758. (#14964)exact_event_property_containspush rule condition from MSC3966. (#15045)dont_notifyaction from the defaults for the.m.rule.reactionpushrule. (#15073)Bugfixes
healthlistener was configured. (#15096)Improved Documentation
Internal Changes
UnpersistedEventContextto allow for the batching up of storing state groups. (#14675)_is_local_room_accessibleas part of room visibility in/hierarchyto clarify the condition for a room being visible. (#14834)WARNING: there is already a transaction in progresslines appearing in PostgreSQL's logs on some occasions. (#14840)StrCollectionto avoid potential bugs withCollection[str]. (#14929)/syncin a few situations. (#14973)contrib, to make it easier for IDEs to interrogate Synapse's database schema. (#14982)get_user_devices_from_cache. (#15040)_generate_sync_entry_for_account_data. (#15047)try_unbind_threepidand_try_unbind_threepid_with_id_serverto not use dictionaries. (#15053)Locked dependency updates
9cd00a8to25dc93b. (#15060)25dc93btoe12eda5. (#15101)v1.77.0Compare Source
Synapse 1.77.0 (2023-02-14)
No significant changes since 1.77.0rc2.
Synapse 1.77.0rc2 (2023-02-10)
Bugfixes
Internal Changes
Synapse 1.77.0rc1 (2023-02-07)
Features
Bugfixes
next_batchtokens from/synccould not be used with the/relationsendpoint. (#14866)send_local_online_presence_towould fail to send presence updates over federation. (#14880)@roomnotification levels set tonullin their (malformed) power levels. (#14942)Internal Changes
StrCollectionto avoid potential bugs withCollection[str]. (#14922)/syncin a few situations. (#14908, #14970)/contrib/lnav. (#14953)v2/send_join/requests to indicate if they served a partial join response. (#14950)cargowithout theextension-moduleoption. (#14965)_flatten_dict. (#14981, #15002)Dependabot updates
e645b0cto9cd00a8. (#14968)v1.76.0Compare Source
Synapse 1.76.0 (2023-01-31)
The 1.76 release is the first to enable faster joins (MSC3706 and MSC3902) by default. Admins can opt-out: see the upgrade notes for more details.
The upgrade from 1.75 to 1.76 changes the account data replication streams in a backwards-incompatible manner. Server operators running a multi-worker deployment should consult the upgrade notes.
Those who are
poetry installing from source using our lockfile should ensure their poetry version is 1.3.2 or higher; see upgrade notes.Notes on faster joins
The faster joins project sees the most benefit when joining a room with a large number of members (joined or historical). We expect it to be particularly useful for joining large public rooms like the Matrix HQ or Synapse Admins rooms.
After a faster join, Synapse considers that room "partially joined". In this state, you should be able to
Synapse has to spend more effort to complete the join in the background. Once this finishes, you will be able to
Improved Documentation
Synapse 1.76.0rc2 (2023-01-27)
Bugfixes
Internal Changes
Synapse 1.76.0rc1 (2023-01-25)
Features
set_displayname()method to the module API for setting a user's display name. (#14629)healthendpoint. (#14747)Bugfixes
/timestamp_to_eventendpoint used for jumping to a specific date in the timeline of a room. (#14799)populate_room_statsbackground job could fail on broken rooms. (#14873)Updates to the Docker image
Improved Documentation
x_forwardedentry in the HTTP listener example configs and remove the remainingworker_main_http_urientries. (#14667)tagtolistenerssection. (#14803)user_directory.search_all_users. (#14818)worker_manholeto configuration manual. (#14824)idfield in application service documentation. (#14845)Deprecations and Removals
poetry installing from source. (#14860)Internal Changes
Keyringclass for readability. (#14804)poetry.toml) to.gitignore. (#14807)cargo fmtandcargo clippyto the lint script. (#14822)presence. (#14825)wait_for_stream_positionto correctly wait for the right instance to advance its token. (#14856, #14872)/stateids. (#14912)v1.75.0Compare Source
Synapse 1.75.0 (2023-01-17)
No significant changes since 1.75.0rc2.
Synapse 1.75.0rc2 (2023-01-12)
Bugfixes
/membersor/statewith anatparameter could fail for newly created rooms, when using multiple workers. (#14817)Synapse 1.75.0rc1 (2023-01-10)
Features
cachedfunction tosynapse.module_apithat returns a decorator to cache return values of functions. (#14663)/syncwhen filtering all rooms, message types, or senders. (#14786)/hierarchyendpoint. (#14263)Bugfixes
jobname for the workers of a Synapse deployment. (#14644)UNIQUE constraint failederrors in therotate_notifsbackground job. (#14669)devicefield from/pushrulesresponses. (#14727)picture_claimconfigured underoidc_providerswas unused (the default value of"picture"was used instead). (#14751)Improved Documentation
target_memory_usagebeing used in the description for the actualcache_autotunesub-optiontarget_cache_memory_usage. (#14674)emailto Server section in config file documentation. (#14730)htmltestto check links in the Synapse documentation. (#14743)Internal Changes
handle_new_client_eventsignature so that a 429 does not reach clients onPartialStateConflictError, and internally retry when needed instead. (#14665)compute_state_after_eventsconsistent with other state-fetching functions that take aStateFilter. (#14676)CachedFunction. (#14685).direnv/directory to .gitignore to prevent local state generated by the direnv development tool from being committed. (#14707)msgids of any to-device messages that are returned over/sync. (#14724)dh-virtualenvto work around an upstream Python 3.11 incompatibility. (#14774)Dependabot updates
v1.74.0Compare Source
Synapse 1.74.0 (2022-12-20)
Improved Documentation
Synapse 1.74.0rc1 (2022-12-13)
Features
keyIdsparameter when calling/_matrix/key/v2/server. (#14490, #14525)push.enabledconfig option to allow opting out of push notification calculation. (#14551, #14619)/_matrix/client/versions. (#14576)Bugfixes
POST /rooms/<room_id>/<membership>/,POST /join/<room_id_or_alias, or the unspeccedPUT /join/<room_id_or_alias>/<txn_id>receive an empty HTTP request body. (#14600)register_new_matrix_userscript failing. (#14637)Improved Documentation
pusherandfederation_senderfunctionality. (#14493)turn_allow_guestsexample value to lowercasetrue. (#14634)Internal Changes
ClientRestResourcefor both workers and the main process. (#14528)--editableflag tocomplement.shwhich uses an editable install of Synapse for faster turn-around times whilst developing iteratively. (#14548)gotestfmttemplate in CI. (#14611)StateFiltertosynapse.types. (#14668)v1.73.0Compare Source
Synapse 1.73.0 (2022-12-06)
Please note that legacy Prometheus metric names have been removed in this release; see the upgrade notes for more details.
No significant changes since 1.73.0rc2.
Synapse 1.73.0rc2 (2022-12-01)
Bugfixes
Synapse 1.73.0rc1 (2022-11-29)
Features
/messageswithfilter_events_for_clientoptimizations. (#14527)device_lists_changes_in_room. (#14534)/timestamp_to_eventendpoints to stablev1location (/_matrix/client/v1/rooms/<roomID>/timestamp_to_event?ts=<timestamp>&dir=<direction>,/_matrix/federation/v1/timestamp_to_event/<roomID>?ts=<timestamp>&dir=<direction>). (#14471)org.matrix.msc1767.10) via MSC1767, MSC3931, MSC3932, and MSC3933. (#14520, #14521, #14524)Bugfixes
org.matrix.msc3026.busywould mistakenly be set toonlinewhen calling/syncor/eventson a worker process. (#14393)org.matrix.msc3202.device_one_time_key_countskey, include a duplicate key oforg.matrix.msc3202.device_one_time_keys_countto match the name proposed by MSC3202. (#14565)Improved Documentation
Deprecations and Removals
Internal Changes
worker_main_http_uriconfiguration setting. This is now handled via internal replication. (#14400, #14476)federation_senderandpusherconfiguration loading. (#14496)(#14509, #14573)
send_join(potentially updated with received membership events) inassert_host_in_room. (#14515)scripts-dev/federation_client: Fix routing on servers with.well-knownfiles. (#14479)(stream ID, room ID)position instead of updating theconverted_to_destinationsflag on every row. (#14516).pyifiles. (#14526)Cargo.lockchanges. This is particularly useful for dependabot updates. (#14571)create_new_client_event. (#14575)poetry.lockfile and in CI scripts. (#14557, #14559, #14560, #14500, #14501, #14502, #14503, #14504, #14505).v1.72.0Compare Source
Synapse 1.72.0 (2022-11-22)
Please note that Synapse now only supports PostgreSQL 11+, because PostgreSQL 10 has reached end-of-life, c.f. our Deprecation Policy.
Bugfixes
Synapse 1.72.0rc1 (2022-11-16)
Features
Bugfixes
/syncfilter, instead of ignoring it for forward compatibility. (#14369)event_searchtable, taking a long time and a large amount of IO. (#14409)Updates to the Docker image
configure_workers_and_start.py. (#14197)Improved Documentation
Deprecations and Removals
Internal Changes
complement.shcommand line script to request certain types of workers. (#14324)/messagesby relation type) in complement. (#14339)prev_events. (#14346)get_partial_state_events_batchdoes not just give you completely arbitrary partial-state events. (#14417)attrsandgitpython. (#14433)PushRuleEvaluator.run. (#14451)/contextin large rooms. (#14461)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.