From fe0012b962a7c98d58465824a40387e6a6867169 Mon Sep 17 00:00:00 2001 From: S1lander <25884914+S1lander@users.noreply.github.com> Date: Fri, 15 May 2026 11:19:13 +0200 Subject: [PATCH] fix: clarify SES no-tracking config set failures --- apps/api/src/services/SESService.ts | 39 +++++++++++++++++++---------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/apps/api/src/services/SESService.ts b/apps/api/src/services/SESService.ts index 8a91b191..b656fee5 100644 --- a/apps/api/src/services/SESService.ts +++ b/apps/api/src/services/SESService.ts @@ -213,21 +213,34 @@ ${breakLongLines(attachment.content, 76, true)}`; const configurationSetName = TRACKING_TOGGLE_ENABLED && !tracking ? SES_CONFIGURATION_SET_NO_TRACKING : SES_CONFIGURATION_SET; - // Send via SES - const response = await ses.sendRawEmail({ - Destinations: destinations, - ConfigurationSetName: configurationSetName, - RawMessage: { - Data: new TextEncoder().encode(rawMessage), - }, - Source: `${from.name} <${from.email}>`, - }); + try { + // Send via SES + const response = await ses.sendRawEmail({ + Destinations: destinations, + ConfigurationSetName: configurationSetName, + RawMessage: { + Data: new TextEncoder().encode(rawMessage), + }, + Source: `${from.name} <${from.email}>`, + }); + + if (!response.MessageId) { + throw new Error('Could not send email'); + } - if (!response.MessageId) { - throw new Error('Could not send email'); + return {messageId: response.MessageId}; + } catch (error) { + const originalMessage = error instanceof Error ? error.message : String(error); + const noTrackingMessage = + TRACKING_TOGGLE_ENABLED && !tracking + ? ' If this was a preview/test email, verify SES_CONFIGURATION_SET_NO_TRACKING exists in AWS SES.' + : ''; + + throw new Error( + `Failed to send email via SES using configuration set "${configurationSetName}".${noTrackingMessage} Original error: ${originalMessage}`, + {cause: error}, + ); } - - return {messageId: response.MessageId}; } /**