diff --git a/lambdas/functions/control-plane/src/lambda.test.ts b/lambdas/functions/control-plane/src/lambda.test.ts index 2c9a98e420..03ff052c0e 100644 --- a/lambdas/functions/control-plane/src/lambda.test.ts +++ b/lambdas/functions/control-plane/src/lambda.test.ts @@ -215,7 +215,9 @@ describe('Test scale up lambda wrapper.', () => { vi.mocked(scaleUp).mockRejectedValue(new Error('Generic error')); const result = await scaleUpHandler(multiRecordEvent, context); - expect(result).toEqual({ batchItemFailures: [] }); + expect(result).toEqual({ + batchItemFailures: [{ itemIdentifier: 'message-0' }, { itemIdentifier: 'message-1' }], + }); }); it('Should throw when scaleUp throws ScaleError', async () => { diff --git a/lambdas/functions/control-plane/src/lambda.ts b/lambdas/functions/control-plane/src/lambda.ts index e2a0451c95..f43a9e3531 100644 --- a/lambdas/functions/control-plane/src/lambda.ts +++ b/lambdas/functions/control-plane/src/lambda.ts @@ -55,9 +55,11 @@ export async function scaleUpHandler(event: SQSEvent, context: Context): Promise batchItemFailures.push(...e.toBatchItemFailures(sqsMessages)); logger.warn(`${e.detailedMessage} A retry will be attempted via SQS.`, { error: e }); } else { - logger.error(`Error processing batch (size: ${sqsMessages.length}): ${(e as Error).message}, ignoring batch`, { - error: e, - }); + batchItemFailures.push(...sqsMessages.map(({ messageId }) => ({ itemIdentifier: messageId }))); + logger.error( + `Error processing batch (size: ${sqsMessages.length}): ${(e as Error).message}, all messages will be retried via SQS.`, + { error: e }, + ); } return { batchItemFailures };