From 3fca12b7a8aedb6ac8fa98295aee9a4674e50bed Mon Sep 17 00:00:00 2001 From: xuan-cao-swi Date: Tue, 19 Aug 2025 21:50:30 -0400 Subject: [PATCH 1/2] fix!: check if span has the attributes method to avoid internal error --- .../lib/opentelemetry/instrumentation/aws_lambda/wrap.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb b/instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb index 655fb7b2b8..1c9d239e7e 100644 --- a/instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb +++ b/instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb @@ -43,7 +43,7 @@ def wrap_lambda(event:, context:, handler:, flush_timeout: DEFAULT_FLUSH_TIMEOUT begin response = yield - unless span.attributes.key?(OpenTelemetry::SemanticConventions::Trace::HTTP_STATUS_CODE) + if span.respond_to?(:attributes) && !span.attributes.key?(OpenTelemetry::SemanticConventions::Trace::HTTP_STATUS_CODE) status_code = response['statusCode'] || response[:statusCode] if response.is_a?(Hash) span.set_attribute(OpenTelemetry::SemanticConventions::Trace::HTTP_STATUS_CODE, status_code) if status_code end From 709d1402538d5c9ab47aca50cee3b798e5a36abb Mon Sep 17 00:00:00 2001 From: Xuan <112967240+xuan-cao-swi@users.noreply.github.com> Date: Thu, 21 Aug 2025 12:28:44 -0400 Subject: [PATCH 2/2] Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb Co-authored-by: Robert --- .../lib/opentelemetry/instrumentation/aws_lambda/wrap.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb b/instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb index 1c9d239e7e..8b02685190 100644 --- a/instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb +++ b/instrumentation/aws_lambda/lib/opentelemetry/instrumentation/aws_lambda/wrap.rb @@ -43,7 +43,7 @@ def wrap_lambda(event:, context:, handler:, flush_timeout: DEFAULT_FLUSH_TIMEOUT begin response = yield - if span.respond_to?(:attributes) && !span.attributes.key?(OpenTelemetry::SemanticConventions::Trace::HTTP_STATUS_CODE) + if span.recording? && !span.attributes.key?(OpenTelemetry::SemanticConventions::Trace::HTTP_STATUS_CODE) status_code = response['statusCode'] || response[:statusCode] if response.is_a?(Hash) span.set_attribute(OpenTelemetry::SemanticConventions::Trace::HTTP_STATUS_CODE, status_code) if status_code end