From 12219fed6537c078fae2a0dbf93ac86ac9ca245d Mon Sep 17 00:00:00 2001 From: "Fabien \"egg\" O'Carroll" Date: Wed, 30 Nov 2022 22:54:01 +0700 Subject: [PATCH] Handled receiving duplicate SpamComplaintEvents We need to check for both ER_DUP_ENTRY and SQLITE_CONSTRAINT because different DB engines give us back different error codes. --- ghost/email-service/lib/email-event-storage.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ghost/email-service/lib/email-event-storage.js b/ghost/email-service/lib/email-event-storage.js index da4d27d005..9ea850b547 100644 --- a/ghost/email-service/lib/email-event-storage.js +++ b/ghost/email-service/lib/email-event-storage.js @@ -165,11 +165,17 @@ class EmailEventStorage { } async handleComplained(event) { - await this.#models.EmailSpamComplaintEvent.add({ - member_id: event.memberId, - email_id: event.emailId, - email_address: event.email - }); + try { + await this.#models.EmailSpamComplaintEvent.add({ + member_id: event.memberId, + email_id: event.emailId, + email_address: event.email + }); + } catch (err) { + if (err.code !== 'ER_DUP_ENTRY' && err.code !== 'SQLITE_CONSTRAINT') { + logging.error(err); + } + } } async unsubscribeFromNewsletters(event) {