diff --git a/packages/component-invite/src/helpers/Team.js b/packages/component-invite/src/helpers/Team.js
index 2012dbfd87d7b543552b54c0668a0b615e5df192..8c1c56d96962ea86daaa570637da4eb91af562e5 100644
--- a/packages/component-invite/src/helpers/Team.js
+++ b/packages/component-invite/src/helpers/Team.js
@@ -44,22 +44,23 @@ const createNewTeam = async (collectionId, role, userId, TeamModel) => {
 const setupManuscriptTeam = async (models, user, collectionId, role) => {
   const teams = await models.Team.all()
   user.teams = user.teams || []
-  const filteredTeams = teams.filter(
+  let foundTeam = teams.find(
     team =>
       team.group === role &&
       team.object.type === 'collection' &&
       team.object.id === collectionId,
   )
 
-  if (filteredTeams.length > 0) {
-    let team = filteredTeams[0]
-    team.members.push(user.id)
+  if (foundTeam !== undefined) {
+    foundTeam.members.push(user.id)
 
     try {
-      team = await team.save()
-      user.teams.push(team.id)
-      await user.save()
-      return team
+      foundTeam = await foundTeam.save()
+      if (!user.teams.includes(foundTeam.id)) {
+        user.teams.push(foundTeam.id)
+        await user.save()
+      }
+      return foundTeam
     } catch (e) {
       logger.error(e)
     }