Synapse 1.154.0rc1 (2026-05-27)
Features
- Add support for MSC4452: Preview URL capabilities API which exposes a
io.element.msc4452.preview_urlcapability.
Ifexperimental_features.msc4452_enabledistrue, the/_matrix/(client/v1/media|media/v3)/preview_urlendpoint
now responds with a 403 status code when the capability is disabled. (#19715)
Bugfixes
- Fix a bug in MSC4186: Simplified Sliding Sync that could prevent user avatars from showing if the room had an empty name. (#19468, #19791)
- Fix access token cache not being invalidated for sessions using refresh tokens. Contributed by @FrenchGithubUser @ Famedly. (#19483)
- Fix bug where Synapse would return 400 (
M_BAD_JSON) when sending a message with amentionsfield and Synapse modulecheck_event_allowedcallback registered (frozen event). Contributed by @gaetan-sbt. (#19634) - Fix long-standing but niche bug with
/syncwhere it could attempt to fetch data with flawed invalid future tokens. (#19644) - Fix
/syncfailing when MSC4354 Sticky Events are enabled and the sync request filters out Ephemeral Data Units (EDUs). (#19787) - Fix packaging for Fedora and EPEL caused by unnecessary bumping
attrsminimum version requirement inpyproject.tomlfile. Contributed by Oleg Girko. (#19789) - Fix merging signatures when a policy server is running under the same server name as Synapse. The bug was re-introduced in v1.153.0rc1 after being fixed earlier in v1.151.0rc1. Contributed by @tulir @ Beeper. (#19797)
Improved Documentation
- Added details about how Synapse syncs the picture claim when
update_profile_informationsetting is true. (#19508)
Internal Changes
- Port
Event.contentfield to Rust. (#19725) - Prefer close backfill points (absolute distance). (#19748)
- Replace unique
quarantined_mediawaiting patterns with standardwait_for_stream_token(...). (#19764) - Improve Synapse logging around when someone encounters
We can't get valid state history.so you can correlate everything byevent_id. (#19765) - Tidy up Rust
RoomVersionstructs. (#19766) - Update
WorkerLocktests to better stress theWORKER_LOCK_MAX_RETRY_INTERVAL. (#19772) - Refactor MSC4242: State DAG checks behind a single
TypeIshelper to avoid scatteredisinstancecasts. (#19774) - Use
StrCollectionforprev_state_events. (#19777) - Fix up the construction of events in tests, ahead of the Rust event port. (#19781)