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