From 80e5d07e18a50e834e54a3ce58a7c2e783ecdf76 Mon Sep 17 00:00:00 2001 From: Olivier Bonvalet Date: Mon, 15 Jun 2026 13:37:18 +0200 Subject: [PATCH] rocketchat: do NOT try to impersonate user if PrefixMessagesWithNick=true, this should partially fix #153 Sending Alias and Avatar unconditionally causes a "Match failed" 400 error on RocketChat servers where the bot role does not have the message-impersonate permission. Only send these fields when PrefixMessagesWithNick is false. Fixes: https://github.com/matterbridge-org/matterbridge/issues/153 Co-authored-by: Claude --- bridge/rocketchat/rocketchat.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/bridge/rocketchat/rocketchat.go b/bridge/rocketchat/rocketchat.go index 247f2b466b..3c0359c8b8 100644 --- a/bridge/rocketchat/rocketchat.go +++ b/bridge/rocketchat/rocketchat.go @@ -151,10 +151,12 @@ func (b *Brocketchat) Send(msg config.Message) (string, error) { smsg := &models.Message{ RoomID: b.getChannelID(rmsg.Channel), Msg: rmsg.Username + rmsg.Text, - PostMessage: models.PostMessage{ + } + if !b.GetBool("PrefixMessagesWithNick") { + smsg.PostMessage = models.PostMessage{ Avatar: rmsg.Avatar, Alias: rmsg.Username, - }, + } } if _, err := b.c.SendMessage(smsg); err != nil { b.Log.Errorf("SendMessage failed: %s", err) @@ -168,10 +170,12 @@ func (b *Brocketchat) Send(msg config.Message) (string, error) { smsg := &models.Message{ RoomID: channel.ID, Msg: msg.Text, - PostMessage: models.PostMessage{ + } + if !b.GetBool("PrefixMessagesWithNick") { + smsg.PostMessage = models.PostMessage{ Avatar: msg.Avatar, Alias: msg.Username, - }, + } } rmsg, err := b.c.SendMessage(smsg)