diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js
index 7ad059de4d5464925d5be470622ab3bb13c0fbbc..3b5fb22e17e9741874ded24f9440e2a1f4edf6c2 100644
--- a/src/plugins/converse-rai.js
+++ b/src/plugins/converse-rai.js
@@ -108,7 +108,7 @@ converse.plugins.add('converse-rai', {
        * @param {string|Array} jids
        * @returns {void}
        */
-      subscribe(jids) {
+      async subscribe(jids) {
         if (!api.settings.get('muc_subscribe_to_rai')) {
           log.error(`You must enable the 'muc_subscribe_to_rai' option before subscribing to a MUC.`);
           return;
@@ -118,15 +118,16 @@ converse.plugins.add('converse-rai', {
           jids = [jids];
         }
 
-        const muc_domains = jids.map(jid => Strophe.getDomainFromJid(jid));
+        const muc_domains = _.uniq(jids.map(jid => Strophe.getDomainFromJid(jid)));
 
-        _.uniq(muc_domains).forEach(muc_domain => {
-          const rai = $pres({ to: muc_domain, id: u.getUniqueId() }).c('rai', {
+        for (let domain of muc_domains) {
+          const rai = $pres({ to: domain, id: u.getUniqueId() }).c('rai', {
             'xmlns': Strophe.NS.RAI,
           });
-          api.send(rai);
-          log.debug(`Sent RAI stanza for domain "${muc_domain}"`);
-        });
+
+          await _converse.connection.send(rai);
+          log.debug(`Sent RAI stanza for domain "${domain}"`);
+        }
       },
     });
 
diff --git a/src/plugins/sib-subscribe-to-rai.js b/src/plugins/sib-subscribe-to-rai.js
index 100673b5502c84303413f30da8b9e4018e2bd356..404109f7924ef30e5a45f0d5670ee577609068e6 100644
--- a/src/plugins/sib-subscribe-to-rai.js
+++ b/src/plugins/sib-subscribe-to-rai.js
@@ -57,8 +57,8 @@ converse.plugins.add('sib-subscribe-to-rai', {
       getProjects,
     ])).flat();
 
-    api.listen.on('connected', () => {
-      api.rooms.subscribe(userRooms);
+    api.listen.on('connected', async () => {
+      await api.rooms.subscribe(userRooms);
     });
 
     api.listen.on('chatRoomHasActivity', jid => {