From e92117d556b50908a8a8b7a42a4851b0c08c5b4a Mon Sep 17 00:00:00 2001 From: Guillim Date: Tue, 6 May 2025 11:17:27 +0200 Subject: [PATCH] Critical email sync bug (#11885) Removing the upsert to avoid the ON CONFLICT --- .../services/messaging-message.service.ts | 46 +++++++++++++------ 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/services/messaging-message.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/services/messaging-message.service.ts index 1a7a398fe..bdccd9ba8 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/services/messaging-message.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/services/messaging-message.service.ts @@ -62,19 +62,39 @@ export class MessagingMessageService { }); if (existingMessage) { - await messageChannelMessageAssociationRepository.upsert( - { - messageChannelId, - messageId: existingMessage.id, - messageExternalId: message.externalId, - messageThreadExternalId: message.messageThreadExternalId, - }, - { - conflictPaths: ['messageChannelId', 'messageId'], - indexPredicate: '"deletedAt" IS NULL', - }, - transactionManager, - ); + const existingAssociation = + await messageChannelMessageAssociationRepository.findOne( + { + where: { + messageChannelId, + messageId: existingMessage.id, + }, + }, + transactionManager, + ); + + if (existingAssociation) { + await messageChannelMessageAssociationRepository.update( + { + id: existingAssociation.id, + }, + { + messageExternalId: message.externalId, + messageThreadExternalId: message.messageThreadExternalId, + }, + transactionManager, + ); + } else { + await messageChannelMessageAssociationRepository.insert( + { + messageChannelId, + messageId: existingMessage.id, + messageExternalId: message.externalId, + messageThreadExternalId: message.messageThreadExternalId, + }, + transactionManager, + ); + } continue; }