diff --git a/src/handlers/rooms.ts b/src/handlers/rooms.ts index 33165d2..8889418 100644 --- a/src/handlers/rooms.ts +++ b/src/handlers/rooms.ts @@ -64,10 +64,13 @@ export async function mapRoom(rcRoom: RcRoom): Promise { if (rcRoom.uids) { await Promise.all( - rcRoom.uids.map(async (uid) => { - await createMembership(rcRoom._id, uid) - log.debug(`${uid} membership in direct chat ${rcRoom._id} created`) - }) + [...new Set(rcRoom.uids)] // Deduplicate users + .map(async (uid) => { + await createMembership(rcRoom._id, uid) + log.debug( + `${uid} membership in direct chat ${rcRoom._id} created` + ) + }) ) } else { throw new Error('Found a direct chat without uids. This is unexpected.')