From f85d95cf8f11ee8af3f0294859e7128769f7b0d8 Mon Sep 17 00:00:00 2001 From: Yiming Luo <10097700+lym953@users.noreply.github.com> Date: Tue, 14 Apr 2026 23:42:46 -0400 Subject: [PATCH] fix: correct durable execution statuses to match Python SDK InvocationStatus enum MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SUCCEEDED, FAILED, STOPPED, TIMED_OUT → SUCCEEDED, FAILED, PENDING. STOPPED and TIMED_OUT are OperationStatus values; InvocationStatus only defines SUCCEEDED, FAILED, and PENDING. Co-Authored-By: Claude Sonnet 4.6 --- datadog_lambda/durable.py | 2 +- tests/test_durable.py | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/datadog_lambda/durable.py b/datadog_lambda/durable.py index c77b43b0..9a28b36b 100644 --- a/datadog_lambda/durable.py +++ b/datadog_lambda/durable.py @@ -55,7 +55,7 @@ def extract_durable_function_tags(event): } -VALID_DURABLE_STATUSES = {"SUCCEEDED", "FAILED", "STOPPED", "TIMED_OUT"} +VALID_DURABLE_STATUSES = {"SUCCEEDED", "FAILED", "PENDING"} def extract_durable_execution_status(response, event): diff --git a/tests/test_durable.py b/tests/test_durable.py index 203548d1..36a3e8c5 100644 --- a/tests/test_durable.py +++ b/tests/test_durable.py @@ -131,19 +131,12 @@ def test_returns_failed(self): response = {"Status": "FAILED", "Error": "some-error"} self.assertEqual(extract_durable_execution_status(response, event), "FAILED") - def test_returns_stopped(self): + def test_returns_pending(self): event = { "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" } - response = {"Status": "STOPPED"} - self.assertEqual(extract_durable_execution_status(response, event), "STOPPED") - - def test_returns_timed_out(self): - event = { - "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" - } - response = {"Status": "TIMED_OUT"} - self.assertEqual(extract_durable_execution_status(response, event), "TIMED_OUT") + response = {"Status": "PENDING"} + self.assertEqual(extract_durable_execution_status(response, event), "PENDING") def test_returns_none_for_non_durable_event(self): event = {"key": "value"}