diff --git a/packages/sns/lib/utils/snsSubscriber.ts b/packages/sns/lib/utils/snsSubscriber.ts index 522d38b2..013f8d34 100644 --- a/packages/sns/lib/utils/snsSubscriber.ts +++ b/packages/sns/lib/utils/snsSubscriber.ts @@ -93,12 +93,13 @@ export async function subscribeToTopic( ? topicConfiguration.Name : topicConfiguration.topicName }": ${err.message}` - logger.error(errMessage) if ( subscriptionConfiguration.updateAttributesIfExists && err.message.indexOf('Subscription already exists with different attributes') !== -1 ) { + logger.warn(`${errMessage}. Trying to update subscription`) + const result = await tryToUpdateSubscription( snsClient, topicArn, @@ -115,6 +116,8 @@ export async function subscribeToTopic( } logger.error('Failed to update subscription') + } else { + logger.error(errMessage) } throw new InternalError({ diff --git a/packages/sns/test/utils/testSnsConfig.ts b/packages/sns/test/utils/testSnsConfig.ts index db1cce9f..5a8cb28e 100644 --- a/packages/sns/test/utils/testSnsConfig.ts +++ b/packages/sns/test/utils/testSnsConfig.ts @@ -1,14 +1,14 @@ import type { S3ClientConfig } from '@aws-sdk/client-s3' import type { SNSClientConfig } from '@aws-sdk/client-sns' import type { SQSClientConfig } from '@aws-sdk/client-sqs' +import type { STSClientConfig } from '@aws-sdk/client-sts' import { createLocalhostHandler } from 'fauxqs' - import { getPort } from './fauxqsInstance.ts' const isLocalstack = process.env.QUEUE_BACKEND === 'localstack' const port = getPort() -export const TEST_AWS_CONFIG: SNSClientConfig & SQSClientConfig = { +export const TEST_AWS_CONFIG: SNSClientConfig & SQSClientConfig & STSClientConfig = { endpoint: `http://localhost:${port}`, region: 'eu-west-1', credentials: {