diff --git a/packages/core/src/lambda/remoteDebugging/ldkClient.ts b/packages/core/src/lambda/remoteDebugging/ldkClient.ts index 020d13d5ef2..916d242f17f 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) { 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" +}