From d5e99309b87c19a567db9632be42e8868086a77a Mon Sep 17 00:00:00 2001 From: Roger Zhang Date: Thu, 6 Nov 2025 14:02:39 -0800 Subject: [PATCH 1/2] Update ldkClient.ts --- packages/core/src/lambda/remoteDebugging/ldkClient.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/core/src/lambda/remoteDebugging/ldkClient.ts b/packages/core/src/lambda/remoteDebugging/ldkClient.ts index 020d13d5ef2..8c6b41d5dbb 100644 --- a/packages/core/src/lambda/remoteDebugging/ldkClient.ts +++ b/packages/core/src/lambda/remoteDebugging/ldkClient.ts @@ -401,6 +401,10 @@ export class LdkClient { } async deleteDebugVersion(functionArn: string, qualifier: string) { + if (!qualifier || qualifier === '$LATEST'){ + // avoid deleting function directly + return true + } try { const region = getRegionFromArn(functionArn) if (!region) { From 1111417a8039cc22dbc733bb890c6dd69df9db64 Mon Sep 17 00:00:00 2001 From: Roger Zhang Date: Thu, 6 Nov 2025 14:13:42 -0800 Subject: [PATCH 2/2] test/changelog --- .../src/lambda/remoteDebugging/ldkClient.ts | 2 +- .../lambda/remoteDebugging/ldkClient.test.ts | 18 ++++++++++++++++++ ...x-275be675-3247-4d5a-a82d-0ce864bb1274.json | 4 ++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 packages/toolkit/.changes/next-release/Bug Fix-275be675-3247-4d5a-a82d-0ce864bb1274.json diff --git a/packages/core/src/lambda/remoteDebugging/ldkClient.ts b/packages/core/src/lambda/remoteDebugging/ldkClient.ts index 8c6b41d5dbb..916d242f17f 100644 --- a/packages/core/src/lambda/remoteDebugging/ldkClient.ts +++ b/packages/core/src/lambda/remoteDebugging/ldkClient.ts @@ -401,7 +401,7 @@ export class LdkClient { } async deleteDebugVersion(functionArn: string, qualifier: string) { - if (!qualifier || qualifier === '$LATEST'){ + if (!qualifier || qualifier === '$LATEST') { // avoid deleting function directly return true } diff --git a/packages/core/src/test/lambda/remoteDebugging/ldkClient.test.ts b/packages/core/src/test/lambda/remoteDebugging/ldkClient.test.ts index 98734e51833..9f9f9c6c47d 100644 --- a/packages/core/src/test/lambda/remoteDebugging/ldkClient.test.ts +++ b/packages/core/src/test/lambda/remoteDebugging/ldkClient.test.ts @@ -348,6 +348,24 @@ describe('LdkClient', () => { assert(mockLambdaClient.deleteFunction.calledOnce, 'Should call deleteFunction') }) + it('should skip deletion when qualifier is empty or latest', async () => { + const result = await ldkClient.deleteDebugVersion( + 'arn:aws:lambda:us-east-1:123456789012:function:testFunction', + '' + ) + + const result2 = await ldkClient.deleteDebugVersion( + 'arn:aws:lambda:us-east-1:123456789012:function:testFunction', + '$LATEST' + ) + assert.strictEqual(result, true, 'Should return true without attempting deletion when empty') + assert.strictEqual(result2, true, 'Should return true without attempting deletion when latest') + assert( + mockLambdaClient.deleteFunction.notCalled, + 'Should not call deleteFunction when qualifier is empty or latest' + ) + }) + it('should handle version deletion errors', async () => { mockLambdaClient.deleteFunction.rejects(new Error('Delete failed')) diff --git a/packages/toolkit/.changes/next-release/Bug Fix-275be675-3247-4d5a-a82d-0ce864bb1274.json b/packages/toolkit/.changes/next-release/Bug Fix-275be675-3247-4d5a-a82d-0ce864bb1274.json new file mode 100644 index 00000000000..95b157c16e0 --- /dev/null +++ b/packages/toolkit/.changes/next-release/Bug Fix-275be675-3247-4d5a-a82d-0ce864bb1274.json @@ -0,0 +1,4 @@ +{ + "type": "Bug Fix", + "description": "Remote debugging will not delete lambda function by accident if publish version failed" +}