From 66bfc418640593f93cc65655136970f526d42d83 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Tue, 22 Sep 2026 13:52:38 -0500 Subject: [PATCH 1/2] 1.162.0rc1 --- CHANGES.md | 50 +++++++++++++++++++++++++++++++ changelog.d/19723.bugfix | 1 - changelog.d/19768.bugfix | 1 - changelog.d/19979.misc | 1 - changelog.d/20011.misc | 1 - changelog.d/20097.misc | 1 - changelog.d/20100.bugfix | 1 - changelog.d/20115.bugfix | 1 - changelog.d/20130.feature | 1 - changelog.d/20133.misc | 1 - changelog.d/20145.bugfix | 1 - changelog.d/20154.bugfix | 1 - changelog.d/20160.misc | 1 - changelog.d/20161.misc | 1 - changelog.d/20162.feature | 1 - changelog.d/20166.misc | 1 - changelog.d/20171.bugfix | 1 - changelog.d/20181.bugfix | 1 - changelog.d/20182.bugfix | 1 - changelog.d/20185.misc | 1 - changelog.d/20187.feature | 1 - changelog.d/20193.misc | 1 - changelog.d/20200.bugfix | 1 - changelog.d/20204.bugfix | 1 - changelog.d/20205.misc | 1 - changelog.d/20207.misc | 1 - changelog.d/20209.doc | 1 - changelog.d/20210.doc | 1 - changelog.d/20216.misc | 1 - changelog.d/20217.doc | 1 - changelog.d/20218.feature | 1 - changelog.d/20219.doc | 1 - changelog.d/20224.misc | 1 - changelog.d/20225.doc | 1 - debian/changelog | 6 ++++ pyproject.toml | 2 +- schema/synapse-config.schema.yaml | 2 +- 37 files changed, 58 insertions(+), 35 deletions(-) delete mode 100644 changelog.d/19723.bugfix delete mode 100644 changelog.d/19768.bugfix delete mode 100644 changelog.d/19979.misc delete mode 100644 changelog.d/20011.misc delete mode 100644 changelog.d/20097.misc delete mode 100644 changelog.d/20100.bugfix delete mode 100644 changelog.d/20115.bugfix delete mode 100644 changelog.d/20130.feature delete mode 100644 changelog.d/20133.misc delete mode 100644 changelog.d/20145.bugfix delete mode 100644 changelog.d/20154.bugfix delete mode 100644 changelog.d/20160.misc delete mode 100644 changelog.d/20161.misc delete mode 100644 changelog.d/20162.feature delete mode 100644 changelog.d/20166.misc delete mode 100644 changelog.d/20171.bugfix delete mode 100644 changelog.d/20181.bugfix delete mode 100644 changelog.d/20182.bugfix delete mode 100644 changelog.d/20185.misc delete mode 100644 changelog.d/20187.feature delete mode 100644 changelog.d/20193.misc delete mode 100644 changelog.d/20200.bugfix delete mode 100644 changelog.d/20204.bugfix delete mode 100644 changelog.d/20205.misc delete mode 100644 changelog.d/20207.misc delete mode 100644 changelog.d/20209.doc delete mode 100644 changelog.d/20210.doc delete mode 100644 changelog.d/20216.misc delete mode 100644 changelog.d/20217.doc delete mode 100644 changelog.d/20218.feature delete mode 100644 changelog.d/20219.doc delete mode 100644 changelog.d/20224.misc delete mode 100644 changelog.d/20225.doc diff --git a/CHANGES.md b/CHANGES.md index c8ea637bd3..1b98865216 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,53 @@ +# Synapse 1.162.0rc1 (2026-09-22) + +## Features + +- Raise default room version to "12". Contributed by @jason-famedly @famedly. ([\#20130](https://github.com/element-hq/synapse/issues/20130)) +- Limit the number of end-to-end encryption one-time keys stored per device to 500 per algorithm, rejecting uploads which would exceed the limit with a `400 Bad Request`. ([\#20162](https://github.com/element-hq/synapse/issues/20162)) +- Add support for configuring a `username` for Redis connections, for Redis 6+ ACL authentication. ([\#20187](https://github.com/element-hq/synapse/issues/20187)) +- Add a rate limit on the client profile lookup endpoints, configurable via `rc_profile`. ([\#20218](https://github.com/element-hq/synapse/issues/20218)) + +## Bugfixes + +- Fix flawed [MSC4311](https://github.com/matrix-org/matrix-spec-proposals/pull/4311) partial implementation introduced in Synapse v1.136.0 for invites/knocks: client-side API's like `/sync` use [stripped state events](https://spec.matrix.org/v1.18/client-server-api/#stripped-state) and we now send full PDUs on the federation-side. To allow some time for the ecosystem to adapt and support MSC4311, Synapse will only apply strict validation when receiving invites/knocks after 2027-06-01. ([\#19723](https://github.com/element-hq/synapse/issues/19723)) +- Allow the Third Party Rules `check_event_allowed()` callback to work with [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291) rooms. Contributed by @famedly. ([\#19768](https://github.com/element-hq/synapse/issues/19768)) +- Improve server concurrency by opening local media thumbnails asynchronously. Contributed by @guillemo12. ([\#20100](https://github.com/element-hq/synapse/issues/20100)) +- Drop incoming federation device list updates from non-compliant (grandfathered historical) user IDs, so that such user IDs are not forwarded to clients outside the context of an event, as per [the spec](https://spec.matrix.org/v1.14/appendices/#historical-user-ids). ([\#20115](https://github.com/element-hq/synapse/issues/20115)) +- Stop treating unset display names and avatar URLs as profile fields with a `null` value. ([\#20145](https://github.com/element-hq/synapse/issues/20145)) +- Return `allowed_room_ids` in the client [`GET /_matrix/client/v1/rooms/{roomId}/hierarchy`](https://spec.matrix.org/v1.19/client-server-api/#get_matrixclientv1roomsroomidhierarchy) response, as required since Matrix 1.15. ([\#20154](https://github.com/element-hq/synapse/issues/20154)) +- Fix state events being omitted from the [MSC4222](https://github.com/matrix-org/matrix-spec-proposals/pull/4222) `state_after` sync response when the client's `since` token falls inside an event persistence batch, as could happen on worker deployments. ([\#20171](https://github.com/element-hq/synapse/issues/20171)) +- Return the stable `M_UNKNOWN_DEVICE` error code, added in Matrix 1.17, instead of its unstable [MSC4326](https://github.com/matrix-org/matrix-spec-proposals/pull/4326)-prefixed identifier. ([\#20181](https://github.com/element-hq/synapse/issues/20181)) +- Fix slow recursive `/relations` requests in large rooms by joining events inside the recursive query. ([\#20182](https://github.com/element-hq/synapse/issues/20182)) +- Fix a bug introduced in Synapse 1.135.0 where fetching an unset `displayname` or `avatar_url` via `GET /_matrix/client/v3/profile/{userId}/{field}` returned the field with a `null` value instead of an empty object. ([\#20200](https://github.com/element-hq/synapse/issues/20200)) +- Add support for un-soft-failing [MSC4354 Sticky Events](https://github.com/matrix-org/matrix-spec-proposals/pull/4354) when room state changes, making federation support more reliable. ([\#20204](https://github.com/element-hq/synapse/issues/20204)) + +## Improved Documentation + +- Document the paths that can be handled on workers with stabilised delegated authentication. ([\#20209](https://github.com/element-hq/synapse/issues/20209)) +- Document the endpoint for getting a single delayed event is workerisable. ([\#20210](https://github.com/element-hq/synapse/issues/20210)) +- Fix small warnings in documentation building tooling output. ([\#20217](https://github.com/element-hq/synapse/issues/20217)) +- Replace the stale minimum `poetry` version in the contributing docs with a pointer to the minimum defined in `pyproject.toml`. ([\#20219](https://github.com/element-hq/synapse/issues/20219)) +- Added docs regarding firewall configuration. Contributed by @HarisDotParis. ([\#20225](https://github.com/element-hq/synapse/issues/20225)) + +## Internal Changes + +- Port the logcontext machinery (`LoggingContext`, `ContextResourceUsage` and the current-context storage) to Rust. ([\#19979](https://github.com/element-hq/synapse/issues/19979)) +- Refactor the Rust code to have a single place to store per-homeserver state. ([\#20011](https://github.com/element-hq/synapse/issues/20011)) +- Add a `synapse_storage_stream_current_position` metric, reporting each stream's current position as each worker process sees it. ([\#20097](https://github.com/element-hq/synapse/issues/20097)) +- Add HTTP serving functions for future [MSC4242](https://github.com/matrix-org/matrix-spec-proposals/pull/4242) work. ([\#20133](https://github.com/element-hq/synapse/issues/20133)) +- Add a cache for looking up individual pieces of current room state. ([\#20160](https://github.com/element-hq/synapse/issues/20160)) +- Run the in-repo Complement test suite in CI, even when the standard Complement suite fails. ([\#20161](https://github.com/element-hq/synapse/issues/20161)) +- Refactor the federation transmission code to delineate transaction preparation and completion. ([\#20166](https://github.com/element-hq/synapse/issues/20166)) +- Add a cache to state resolution keyed off the conflicted events. ([\#20185](https://github.com/element-hq/synapse/issues/20185)) +- Improve the rendering of the set inequality errors produced by `assertEqual` in the tests. ([\#20193](https://github.com/element-hq/synapse/issues/20193)) +- Fix `/room_summary` returning stale `join_rules`. Contributed by @famedly. ([\#20205](https://github.com/element-hq/synapse/issues/20205)) +- Fix the `Schema Diff` CI check failing to post a comment on pull requests from forks. ([\#20207](https://github.com/element-hq/synapse/issues/20207)) +- Move documentation building python dependencies into `pyproject.toml` under a new `docs` dependency group. ([\#20216](https://github.com/element-hq/synapse/issues/20216)) +- Align comments in `.dockerignore` with what we have in the private Synapse Pro branch. ([\#20224](https://github.com/element-hq/synapse/issues/20224)) + + + + # Synapse 1.161.0 (2026-09-15) No significant changes since 1.161.0rc1. diff --git a/changelog.d/19723.bugfix b/changelog.d/19723.bugfix deleted file mode 100644 index c445a79b06..0000000000 --- a/changelog.d/19723.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix flawed [MSC4311](https://github.com/matrix-org/matrix-spec-proposals/pull/4311) partial implementation introduced in Synapse v1.136.0 for invites/knocks: client-side API's like `/sync` use [stripped state events](https://spec.matrix.org/v1.18/client-server-api/#stripped-state) and we now send full PDUs on the federation-side. To allow some time for the ecosystem to adapt and support MSC4311, Synapse will only apply strict validation when receiving invites/knocks after 2027-06-01. diff --git a/changelog.d/19768.bugfix b/changelog.d/19768.bugfix deleted file mode 100644 index 8314491ced..0000000000 --- a/changelog.d/19768.bugfix +++ /dev/null @@ -1 +0,0 @@ -Allow the Third Party Rules `check_event_allowed()` callback to work with [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291) rooms. Contributed by @famedly. diff --git a/changelog.d/19979.misc b/changelog.d/19979.misc deleted file mode 100644 index 3210329a56..0000000000 --- a/changelog.d/19979.misc +++ /dev/null @@ -1 +0,0 @@ -Port the logcontext machinery (`LoggingContext`, `ContextResourceUsage` and the current-context storage) to Rust. diff --git a/changelog.d/20011.misc b/changelog.d/20011.misc deleted file mode 100644 index 9582106675..0000000000 --- a/changelog.d/20011.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor the Rust code to have a single place to store per-homeserver state. diff --git a/changelog.d/20097.misc b/changelog.d/20097.misc deleted file mode 100644 index 3c9cd6c86e..0000000000 --- a/changelog.d/20097.misc +++ /dev/null @@ -1 +0,0 @@ -Add a `synapse_storage_stream_current_position` metric, reporting each stream's current position as each worker process sees it. diff --git a/changelog.d/20100.bugfix b/changelog.d/20100.bugfix deleted file mode 100644 index 1c73ada4da..0000000000 --- a/changelog.d/20100.bugfix +++ /dev/null @@ -1 +0,0 @@ -Improve server concurrency by opening local media thumbnails asynchronously. Contributed by @guillemo12. \ No newline at end of file diff --git a/changelog.d/20115.bugfix b/changelog.d/20115.bugfix deleted file mode 100644 index 4cb368a1b3..0000000000 --- a/changelog.d/20115.bugfix +++ /dev/null @@ -1 +0,0 @@ -Drop incoming federation device list updates from non-compliant (grandfathered historical) user IDs, so that such user IDs are not forwarded to clients outside the context of an event, as per [the spec](https://spec.matrix.org/v1.14/appendices/#historical-user-ids). diff --git a/changelog.d/20130.feature b/changelog.d/20130.feature deleted file mode 100644 index 82c8faa015..0000000000 --- a/changelog.d/20130.feature +++ /dev/null @@ -1 +0,0 @@ -Raise default room version to "12". Contributed by @jason-famedly @famedly. diff --git a/changelog.d/20133.misc b/changelog.d/20133.misc deleted file mode 100644 index 9590db6934..0000000000 --- a/changelog.d/20133.misc +++ /dev/null @@ -1 +0,0 @@ -Add HTTP serving functions for future [MSC4242](https://github.com/matrix-org/matrix-spec-proposals/pull/4242) work. diff --git a/changelog.d/20145.bugfix b/changelog.d/20145.bugfix deleted file mode 100644 index e2ce9d52db..0000000000 --- a/changelog.d/20145.bugfix +++ /dev/null @@ -1 +0,0 @@ -Stop treating unset display names and avatar URLs as profile fields with a `null` value. \ No newline at end of file diff --git a/changelog.d/20154.bugfix b/changelog.d/20154.bugfix deleted file mode 100644 index 50de48799f..0000000000 --- a/changelog.d/20154.bugfix +++ /dev/null @@ -1 +0,0 @@ -Return `allowed_room_ids` in the client [`GET /_matrix/client/v1/rooms/{roomId}/hierarchy`](https://spec.matrix.org/v1.19/client-server-api/#get_matrixclientv1roomsroomidhierarchy) response, as required since Matrix 1.15. diff --git a/changelog.d/20160.misc b/changelog.d/20160.misc deleted file mode 100644 index 476608a767..0000000000 --- a/changelog.d/20160.misc +++ /dev/null @@ -1 +0,0 @@ -Add a cache for looking up individual pieces of current room state. diff --git a/changelog.d/20161.misc b/changelog.d/20161.misc deleted file mode 100644 index 4351f779c2..0000000000 --- a/changelog.d/20161.misc +++ /dev/null @@ -1 +0,0 @@ -Run the in-repo Complement test suite in CI, even when the standard Complement suite fails. \ No newline at end of file diff --git a/changelog.d/20162.feature b/changelog.d/20162.feature deleted file mode 100644 index a197d13664..0000000000 --- a/changelog.d/20162.feature +++ /dev/null @@ -1 +0,0 @@ -Limit the number of end-to-end encryption one-time keys stored per device to 500 per algorithm, rejecting uploads which would exceed the limit with a `400 Bad Request`. diff --git a/changelog.d/20166.misc b/changelog.d/20166.misc deleted file mode 100644 index 716e910f8f..0000000000 --- a/changelog.d/20166.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor the federation transmission code to delineate transaction preparation and completion. \ No newline at end of file diff --git a/changelog.d/20171.bugfix b/changelog.d/20171.bugfix deleted file mode 100644 index ab54bf8df4..0000000000 --- a/changelog.d/20171.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix state events being omitted from the [MSC4222](https://github.com/matrix-org/matrix-spec-proposals/pull/4222) `state_after` sync response when the client's `since` token falls inside an event persistence batch, as could happen on worker deployments. diff --git a/changelog.d/20181.bugfix b/changelog.d/20181.bugfix deleted file mode 100644 index 477902b97f..0000000000 --- a/changelog.d/20181.bugfix +++ /dev/null @@ -1 +0,0 @@ -Return the stable `M_UNKNOWN_DEVICE` error code, added in Matrix 1.17, instead of its unstable [MSC4326](https://github.com/matrix-org/matrix-spec-proposals/pull/4326)-prefixed identifier. diff --git a/changelog.d/20182.bugfix b/changelog.d/20182.bugfix deleted file mode 100644 index 637c3efb96..0000000000 --- a/changelog.d/20182.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix slow recursive `/relations` requests in large rooms by joining events inside the recursive query. diff --git a/changelog.d/20185.misc b/changelog.d/20185.misc deleted file mode 100644 index 69125baad8..0000000000 --- a/changelog.d/20185.misc +++ /dev/null @@ -1 +0,0 @@ -Add a cache to state resolution keyed off the conflicted events. diff --git a/changelog.d/20187.feature b/changelog.d/20187.feature deleted file mode 100644 index d5c53f1510..0000000000 --- a/changelog.d/20187.feature +++ /dev/null @@ -1 +0,0 @@ -Add support for configuring a `username` for Redis connections, for Redis 6+ ACL authentication. diff --git a/changelog.d/20193.misc b/changelog.d/20193.misc deleted file mode 100644 index 03ab2b0f7e..0000000000 --- a/changelog.d/20193.misc +++ /dev/null @@ -1 +0,0 @@ -Improve the rendering of the set inequality errors produced by `assertEqual` in the tests. \ No newline at end of file diff --git a/changelog.d/20200.bugfix b/changelog.d/20200.bugfix deleted file mode 100644 index 41eadbcf6e..0000000000 --- a/changelog.d/20200.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a bug introduced in Synapse 1.135.0 where fetching an unset `displayname` or `avatar_url` via `GET /_matrix/client/v3/profile/{userId}/{field}` returned the field with a `null` value instead of an empty object. diff --git a/changelog.d/20204.bugfix b/changelog.d/20204.bugfix deleted file mode 100644 index 783bedee14..0000000000 --- a/changelog.d/20204.bugfix +++ /dev/null @@ -1 +0,0 @@ -Add support for un-soft-failing [MSC4354 Sticky Events](https://github.com/matrix-org/matrix-spec-proposals/pull/4354) when room state changes, making federation support more reliable. \ No newline at end of file diff --git a/changelog.d/20205.misc b/changelog.d/20205.misc deleted file mode 100644 index 5a5d03b44a..0000000000 --- a/changelog.d/20205.misc +++ /dev/null @@ -1 +0,0 @@ -Fix `/room_summary` returning stale `join_rules`. Contributed by @famedly. diff --git a/changelog.d/20207.misc b/changelog.d/20207.misc deleted file mode 100644 index 3709ad46f1..0000000000 --- a/changelog.d/20207.misc +++ /dev/null @@ -1 +0,0 @@ -Fix the `Schema Diff` CI check failing to post a comment on pull requests from forks. diff --git a/changelog.d/20209.doc b/changelog.d/20209.doc deleted file mode 100644 index cfee70c67c..0000000000 --- a/changelog.d/20209.doc +++ /dev/null @@ -1 +0,0 @@ -Document the paths that can be handled on workers with stabilised delegated authentication. diff --git a/changelog.d/20210.doc b/changelog.d/20210.doc deleted file mode 100644 index 3b0f828036..0000000000 --- a/changelog.d/20210.doc +++ /dev/null @@ -1 +0,0 @@ -Document the endpoint for getting a single delayed event is workerisable. diff --git a/changelog.d/20216.misc b/changelog.d/20216.misc deleted file mode 100644 index 130a5b1339..0000000000 --- a/changelog.d/20216.misc +++ /dev/null @@ -1 +0,0 @@ -Move documentation building python dependencies into `pyproject.toml` under a new `docs` dependency group. \ No newline at end of file diff --git a/changelog.d/20217.doc b/changelog.d/20217.doc deleted file mode 100644 index a7d4590cfa..0000000000 --- a/changelog.d/20217.doc +++ /dev/null @@ -1 +0,0 @@ -Fix small warnings in documentation building tooling output. \ No newline at end of file diff --git a/changelog.d/20218.feature b/changelog.d/20218.feature deleted file mode 100644 index f8e85a88f8..0000000000 --- a/changelog.d/20218.feature +++ /dev/null @@ -1 +0,0 @@ -Add a rate limit on the client profile lookup endpoints, configurable via `rc_profile`. diff --git a/changelog.d/20219.doc b/changelog.d/20219.doc deleted file mode 100644 index 7bfa49e480..0000000000 --- a/changelog.d/20219.doc +++ /dev/null @@ -1 +0,0 @@ -Replace the stale minimum `poetry` version in the contributing docs with a pointer to the minimum defined in `pyproject.toml`. \ No newline at end of file diff --git a/changelog.d/20224.misc b/changelog.d/20224.misc deleted file mode 100644 index 829f713cf6..0000000000 --- a/changelog.d/20224.misc +++ /dev/null @@ -1 +0,0 @@ -Align comments in `.dockerignore` with what we have in the private Synapse Pro branch. diff --git a/changelog.d/20225.doc b/changelog.d/20225.doc deleted file mode 100644 index cba91aef6f..0000000000 --- a/changelog.d/20225.doc +++ /dev/null @@ -1 +0,0 @@ -Added docs regarding firewall configuration. Contributed by @HarisDotParis. diff --git a/debian/changelog b/debian/changelog index cebc8490cb..2d8b89895d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +matrix-synapse-py3 (1.162.0~rc1) stable; urgency=medium + + * New synapse release 1.162.0rc1. + + -- Synapse Packaging team Tue, 22 Sep 2026 18:51:00 +0000 + matrix-synapse-py3 (1.161.0) stable; urgency=medium * New synapse release 1.161.0. diff --git a/pyproject.toml b/pyproject.toml index e1965b71fd..b242148333 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "matrix-synapse" -version = "1.161.0" +version = "1.162.0rc1" description = "Homeserver for the Matrix decentralised comms protocol" readme = "README.rst" authors = [ diff --git a/schema/synapse-config.schema.yaml b/schema/synapse-config.schema.yaml index 4550ad3e06..3034db88b6 100644 --- a/schema/synapse-config.schema.yaml +++ b/schema/synapse-config.schema.yaml @@ -1,5 +1,5 @@ $schema: https://element-hq.github.io/synapse/latest/schema/v1/meta.schema.json -$id: https://element-hq.github.io/synapse/schema/synapse/v1.161/synapse-config.schema.json +$id: https://element-hq.github.io/synapse/schema/synapse/v1.162/synapse-config.schema.json type: object properties: modules: From 5b3332bcf293264c758e6606ba90e9781c55730c Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Tue, 22 Sep 2026 17:37:07 -0500 Subject: [PATCH 2/2] Better align case and canonical "third party rules" spelling --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 1b98865216..f222da58b0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,7 +10,7 @@ ## Bugfixes - Fix flawed [MSC4311](https://github.com/matrix-org/matrix-spec-proposals/pull/4311) partial implementation introduced in Synapse v1.136.0 for invites/knocks: client-side API's like `/sync` use [stripped state events](https://spec.matrix.org/v1.18/client-server-api/#stripped-state) and we now send full PDUs on the federation-side. To allow some time for the ecosystem to adapt and support MSC4311, Synapse will only apply strict validation when receiving invites/knocks after 2027-06-01. ([\#19723](https://github.com/element-hq/synapse/issues/19723)) -- Allow the Third Party Rules `check_event_allowed()` callback to work with [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291) rooms. Contributed by @famedly. ([\#19768](https://github.com/element-hq/synapse/issues/19768)) +- Allow the third party rules callback `check_event_allowed()` to work with [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291) rooms. Contributed by @famedly. ([\#19768](https://github.com/element-hq/synapse/issues/19768)) - Improve server concurrency by opening local media thumbnails asynchronously. Contributed by @guillemo12. ([\#20100](https://github.com/element-hq/synapse/issues/20100)) - Drop incoming federation device list updates from non-compliant (grandfathered historical) user IDs, so that such user IDs are not forwarded to clients outside the context of an event, as per [the spec](https://spec.matrix.org/v1.14/appendices/#historical-user-ids). ([\#20115](https://github.com/element-hq/synapse/issues/20115)) - Stop treating unset display names and avatar URLs as profile fields with a `null` value. ([\#20145](https://github.com/element-hq/synapse/issues/20145))