diff --git a/src/plugins/sib-vcard-preload.js b/src/plugins/sib-vcard-preload.js
deleted file mode 100644
index 8ae2dbafbc1414b11f0ce35fd7b62375e009186b..0000000000000000000000000000000000000000
--- a/src/plugins/sib-vcard-preload.js
+++ /dev/null
@@ -1,166 +0,0 @@
-import('../utils.js').then((utils) => {
-  import(/* @vite-ignore */ utils.coreVersion()).then(async (core) => {
-    /**
-     * Update the vcard with the user's name if it's missing.
-     * This is done to avoid the user's jid being displayed in the chat,
-     * when the vCard are loading.
-     *
-     * This also fixes the fact that any user that haven't posted a message
-     * yet, will have their nickname displayed as full name in the mentions.
-     *
-     * TODO: Caching vCards into the browser storage would be nice.
-     */
-    converse.plugins.add('sib-vcard-preload', {
-      dependencies: ['converse-vcard'],
-
-      overrides: {
-        ChatRoom: {
-          /**
-           * Move the `all` mention at the bottom.
-           * Use the vCard to get the user's nickname, to avoid malformed mentions items.
-           * FIXME: After a user joins, the occupant list is badly updated.
-           *
-           * @returns {string[]}
-           */
-          getAllKnownNicknames() {
-            const { _ } = converse.env;
-            const { _converse } = this.__super__;
-
-            // Get all the jids from the occupants and messages (converse.js#L81362)
-            const jids = _.uniq(this.occupants.map((o) => o.get('jid'))).filter(Boolean);
-            const nicknames = [];
-
-            // Get the nickname from the vCard if available
-            for (const jid of jids) {
-              const vcard = _converse.vcards.findWhere({ jid });
-              if (vcard) {
-                nicknames.push(vcard.get('nickname'));
-              }
-            }
-
-            // Add the `all` mention at the bottom
-            return nicknames.filter((n) => n !== 'all').concat(['all']);
-          },
-
-          /**
-           * When an occupant is added, create the vCard if it's missing.
-           * So the mentions are properly displayed (needs the full name).
-           * TODO: Ensure that the occupant is properly removed when the user leaves.
-           *
-           * @param {unknown} occupant
-           * @returns {void}
-           */
-          onOccupantAdded(occupant) {
-            this.__super__.onOccupantAdded.apply(this, arguments);
-
-            const { log } = converse.env;
-            const { _converse } = this.__super__;
-            const { api } = _converse;
-            const jid = occupant.get('jid');
-
-            if (!jid) {
-              return;
-            }
-
-            if (_converse.vcards.findWhere({ jid })) {
-              // The vCard has already been created before
-              return;
-            }
-
-            api.vcard.get(jid, true).then((vcard) => {
-              if (vcard.vcard_error) {
-                // There was an error (probably `all` mention)
-                return;
-              }
-
-              if (_converse.vcards.findWhere({ jid })) {
-                // The vCard has already been created during the request
-                return;
-              }
-
-              log.info('Preloading vCard for the new occupant');
-              // TODO: Get more data from the user profile?
-              _converse.vcards.create({
-                jid,
-                fullname: vcard.fullname,
-                nickname: vcard.nickname,
-              });
-            });
-          },
-        },
-      },
-
-      async initialize() {
-        const { log } = converse.env;
-        const _converse = this._converse;
-        const { api } = _converse;
-
-        /**
-         * Fetch circles roster and store it in a map.
-         * This leverages some custom headers to fetch the users data,
-         * in a single request.
-         *
-         * @returns {Promise<Map<string, unknown>>}
-         */
-        const fetchRoster = async () => {
-          const circlesRoster = new Map();
-
-          try {
-            const user = await document.querySelector('sib-auth').getUser();
-            // FIXME: The context is undefined
-            const userProfile = await core.store.getData(
-              user['@id'],
-              this.context
-            );
-            const circles = await userProfile['circles'];
-
-            const res = await core.store.fetchAuthn(circles['@id'], {
-              headers: {
-                depth: 5,
-                'accept-model-fields':
-                  '["members", "user_set", "circle", "chatProfile", "jabberID", "username", "name"]',
-              },
-            });
-
-            const data = await res.json();
-            const users =
-              data['ldp:contains']?.flatMap(
-                (circle) => circle['members']['user_set']
-              ) || [];
-
-            users.forEach((user) => {
-              circlesRoster.set(user['chatProfile']['jabberID'], user);
-            });
-          } catch (err) {
-            log.error('Failed to fetch circles roster');
-          }
-
-          return circlesRoster;
-        };
-
-        api.listen.on('VCardsInitialized', async () => {
-          const circlesRoster = await fetchRoster();
-
-          log.info('Preloading vCards with circles roster data');
-          for (const [jabberID, user] of circlesRoster.entries()) {
-            const vcard = _converse.vcards.findWhere({ jid: jabberID });
-            if (vcard) {
-              if (!vcard.get('fullname')) {
-                vcard.set({
-                  fullname: user.name,
-                  nickname: user.username,
-                });
-              }
-            } else {
-              _converse.vcards.create({
-                jid: jabberID,
-                fullname: user.name,
-                nickname: user.username,
-              });
-            }
-          }
-        });
-      },
-    });
-  });
-});
diff --git a/src/solid-xmpp-chat.js b/src/solid-xmpp-chat.js
index 24263d3835194ff67d3a0533a9e1c189fc2eaf32..66c19adb527414124933cd063f0067db9b4ff08d 100644
--- a/src/solid-xmpp-chat.js
+++ b/src/solid-xmpp-chat.js
@@ -20,7 +20,6 @@ import("./utils.js").then((utils) => {
     await import("./plugins/sib-scroll-down-on-focus.js");
     await import("./plugins/sib-send-button-mobile.js");
     await import("./plugins/sib-subscribe-to-rai.js");
-    await import("./plugins/sib-vcard-preload.js");
 
     core.Sib.register({
       name: "solid-xmpp-chat",
@@ -290,7 +289,6 @@ import("./utils.js").then((utils) => {
               "sib-scroll-down-on-focus",
               "sib-send-button-mobile",
               "sib-subscribe-to-rai",
-              "sib-vcard-preload",
             ],
           };