This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Synapse will hide expired events from clients even if message retention policy support isn't enabled #8884
Labels
A-Message-Retention-Policies
Issues related to Synapse's support of MSC1763 (message retention policies)
S-Tolerable
Minor significance, cosmetic issues, low or no impact to users.
T-Defect
Bugs, crashes, hangs, security vulnerabilities, or other reported issues.
If
retention.enabled
is set toFalse
in the configuration file, and am.room.retention
event is inserted into the state of a room, instead of only storing it (and ignoring it otherwise) Synapse will hide "expired" events from clients once their age gets higher than the retention policy'smax_lifetime
.Practically, this means this happens with any Synapse, rather than only a Synapse with the feature enabled:
(clear cache + reload was needed because Element doesn't implement this feature yet)
The impact of this bug isn't too high since we don't actually delete any event, however from a user perspective it strongly implies their messages get deleted when they don't which can be pretty confusing.
The issue lies within
filter_events_for_client
, which isn't aware of whether the feature is enabled whereas it should be. We would also need to change the 30 or so calls to this function throughout the Synapse codebase to give it that info (given we can't blindly assume it with a default value since it depends on the config, not on the context of the call).The text was updated successfully, but these errors were encountered: