RocketChat / RocketChat/Rocket.Chat
Federation: mentions of federated users render as plain text (and as @@user on mobile)
Nobody has claimed this yet.
- 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.orginto the composer.
Steps to reproduce:
- Have a federated channel open between two servers (Matrix federation).
- From server A, mention a user from server B (e.g.
@user:serverB.org) via autocomplete and send. - Observe the message on the sending side: the mention renders as plain text.
- Check the receiving side (server B): the mention renders correctly and notifies the user.
- Quote a message containing mentions: in the quote, mentions render as plain text.
- On the mobile app: quote the same message: mentions render as
@@user. - 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:

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):

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

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

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

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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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