diff --git a/packages/twenty-server/src/engine/core-modules/messaging/utils/format-threads.util.ts b/packages/twenty-server/src/engine/core-modules/messaging/utils/format-threads.util.ts index 8885f6be12..2733735413 100644 --- a/packages/twenty-server/src/engine/core-modules/messaging/utils/format-threads.util.ts +++ b/packages/twenty-server/src/engine/core-modules/messaging/utils/format-threads.util.ts @@ -1,4 +1,5 @@ import { FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED } from 'twenty-shared/constants'; +import { isDefined } from 'twenty-shared/utils'; import { type TimelineThreadDTO } from 'src/engine/core-modules/messaging/dtos/timeline-thread.dto'; import { extractParticipantSummary } from 'src/engine/core-modules/messaging/utils/extract-participant-summary.util'; @@ -21,23 +22,25 @@ export const formatThreads = ( [key: string]: MessageChannelVisibility; }, ): TimelineThreadDTO[] => { - return threads.map((thread) => { - const visibility = threadVisibilityByThreadId[thread.id]; + return threads + .filter((thread) => isDefined(threadParticipantsByThreadId[thread.id])) + .map((thread) => { + const visibility = threadVisibilityByThreadId[thread.id]; - return { - ...thread, - subject: - visibility === MessageChannelVisibility.SHARE_EVERYTHING || - visibility === MessageChannelVisibility.SUBJECT - ? thread.subject - : FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED, - lastMessageBody: - visibility === MessageChannelVisibility.SHARE_EVERYTHING - ? thread.lastMessageBody - : FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED, - ...extractParticipantSummary(threadParticipantsByThreadId[thread.id]), - visibility, - read: true, - }; - }); + return { + ...thread, + subject: + visibility === MessageChannelVisibility.SHARE_EVERYTHING || + visibility === MessageChannelVisibility.SUBJECT + ? thread.subject + : FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED, + lastMessageBody: + visibility === MessageChannelVisibility.SHARE_EVERYTHING + ? thread.lastMessageBody + : FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED, + ...extractParticipantSummary(threadParticipantsByThreadId[thread.id]), + visibility, + read: true, + }; + }); };