diff --git a/bridge/rocketchat/rocketchat.go b/bridge/rocketchat/rocketchat.go index 59f0e99c..51920d27 100644 --- a/bridge/rocketchat/rocketchat.go +++ b/bridge/rocketchat/rocketchat.go @@ -169,6 +169,15 @@ func (b *Brocketchat) Send(msg config.Message) (string, error) { rmsg, err := b.c.SendMessage(smsg) if rmsg == nil { + if strings.Contains(err.Error(), "Invalid or expired session, please login again") || + strings.Contains(err.Error(), "error-invalid-user") { + b.Log.Info("Login expired, reconnecting..") + err = b.apiLogin() + if err != nil { + return "", err + } + b.Remote <- config.Message{Username: "system", Text: "rejoin", Channel: "", Account: b.Account, Event: config.EventRejoinChannels} + } return "", err } return rmsg.ID, err