RocketChat / RocketChat/Rocket.Chat

Federation: mentions of federated users render as plain text (and as @@user on mobile)

Open
#41,522 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

type: bug
Dominant language
TypeScript
Stars
46.1k
Forks
13.9k
Avg merge
3d 3h
Merged PRs (30d)
130

Description

Description:

In a federated (Matrix) channel, mentioning a user from a remote server is effectively broken from a rendering standpoint:

  • On the sending side, the mention renders as plain text (e.g. @user:server.org) with no mention pill/highlight, so there is no visual confirmation the mention actually worked.
  • The mention is delivered and rendered correctly on the receiving side (the remote user gets notified) — so this appears to be a rendering problem, not a delivery problem.
  • Quoting a message that contains mentions does not render the mentions in the quote (plain text again).
  • On mobile it goes further: quoted mentions render as @@user (double @), and selecting a federated user from the mention autocomplete inserts @@user:server.org into the composer.
Steps to reproduce:
  1. Have a federated channel open between two servers (Matrix federation).
  2. From server A, mention a user from server B (e.g. @user:serverB.org) via autocomplete and send.
  3. Observe the message on the sending side: the mention renders as plain text.
  4. Check the receiving side (server B): the mention renders correctly and notifies the user.
  5. Quote a message containing mentions: in the quote, mentions render as plain text.
  6. On the mobile app: quote the same message: mentions render as @@user.
  7. On the mobile app: type @, pick a federated user from autocomplete: the composer text becomes @@user:server.org.
Expected behavior:
  • Mentions of federated users render as proper mention pills/links on both the sending and receiving sides.
  • Quoted messages render mentions the same way as regular messages.
  • Mobile composer/quote handling produces a single @ mention.
Actual behavior:

Mention of a federated user renders as plain text on the sending side — no indication the mention worked:

federated-mention-plain-text

The mention does work on the receiving side — it renders and notifies correctly (note: the double mention here was only because we weren't sure mentions were working at all):

receiving-side-renders-correctly

Quoting a message with mentions doesn't render them either (plain text inside the quote):

quote-mentions-plain-text

On mobile, quoting renders the mentions as @@aaron:

mobile-quote-double-at

And on mobile, selecting a federated user from the mention autocomplete inserts @@sing.li:rocket.chat:

mobile-autocomplete-double-at

Server Setup Information:
  • Version of Rocket.Chat Server: 8.6.0
  • License Type:
  • Number of Users:
  • Operating System: Kubernetes (official container images)
  • Deployment Method: Official Rocket.Chat Helm chart (latest chart version), microservices deployment
  • Number of Running Instances: multiple (microservices)
  • DB Replicaset Oplog: enabled
  • NodeJS Version: as shipped in the 8.6.0 image
  • MongoDB Version: 8.0.3
Client Setup Information
  • Desktop App or Browser Version: reproducible in the web/desktop client; mobile behavior observed on the Rocket.Chat iOS app
  • Operating System: macOS (desktop), iOS (mobile)
Additional context
  • Federation is Matrix-based; the channel is federated between our server and a remote server.
  • Happy to share our server/homeserver details privately if needed for troubleshooting.
Relevant logs:

N/A — no related errors observed in server or browser logs while reproducing. Happy to collect specific logs on request.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in the web/desktop client and iOS app across normal messages, quoted messages, and mention autocomplete. Trace the federated mention rendering and mobile composer/quote handling from those entry points. Done means federated mentions render as mention pills or links in messages and quotes, while mobile insertion and quoting produce a single @.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.