diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index 0aded4de..dfb08dd2 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -411,7 +411,10 @@ def is_legacy_lambda_step_function(event): """ Check if the event is a step function that called a legacy lambda """ - event = event.get("Payload", {}) + if not isinstance(event, dict) or "Payload" not in event: + return False + + event = event.get("Payload") return "Execution" in event and "StateMachine" in event and "State" in event diff --git a/tests/test_tracing.py b/tests/test_tracing.py index 0fb2ee31..22ac7049 100644 --- a/tests/test_tracing.py +++ b/tests/test_tracing.py @@ -678,6 +678,9 @@ def test_is_legacy_lambda_step_function(self): } self.assertFalse(is_legacy_lambda_step_function(sf_event)) + other_event = ["foo", "bar"] + self.assertFalse(is_legacy_lambda_step_function(other_event)) + class TestXRayContextConversion(unittest.TestCase): def test_convert_xray_trace_id(self):