Skip to content

Notification settings lose the mention rows once the server stops serving the legacy mention push rules (MSC4210) #35032

Description

@barodeur

Steps to reproduce

  1. Run Synapse develop with experimental_features: { msc4210_enabled: true }. It then serves .m.rule.is_user_mention and .m.rule.is_room_mention but not .m.rule.contains_user_name, .m.rule.contains_display_name or .m.rule.roomnotif (MSC4210, Matrix v1.17). Synapse is about to do this by default (Support Matrix 1.17 synapse#19415).
  2. Log in with Element Web.
  3. Open Settings > Notifications.

Outcome

What did you expect?

The "Mentions and keywords" section shows a row for user mentions and a row for @room mentions, backed by the intentional rules, and toggling them updates those rules on the server.

What happened instead?

The section shows only "Messages containing keywords". There is no way to change how mentions notify.

notification-settings-before-fix

Cause: the section is built from the three legacy rule IDs. The intentional rules are only ever written as synced rules of the legacy rows (#26227), never rendered on their own. When the server does not return the legacy rules there is nothing to render.

Sending and rendering are unaffected: Element Web already attaches m.mentions to every message, and matrix-js-sdk already ignores the legacy rules for events that carry it. Only the settings UI is broken.

Operating system

macOS 26

Application version

Element Web develop at c603feb

How did you install the app?

Local dev server

Homeserver

Synapse 1.161.0rc1 (develop) with msc4210_enabled: true

Will you send logs?

No

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions