summaryrefslogtreecommitdiff
path: root/lib/error_tracking/stacktrace_builder.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-06-23 09:08:58 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-06-23 09:08:58 +0000
commit17f2e5035c716bccb6bd7073215e9b2d449184e7 (patch)
treefc64f81713efe4d097d454ccf5f1a691d7b09165 /lib/error_tracking/stacktrace_builder.rb
parent48720d9da0a148c8a7886351162bbf0413ed492e (diff)
downloadgitlab-ce-17f2e5035c716bccb6bd7073215e9b2d449184e7.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/error_tracking/stacktrace_builder.rb')
-rw-r--r--lib/error_tracking/stacktrace_builder.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/error_tracking/stacktrace_builder.rb b/lib/error_tracking/stacktrace_builder.rb
index 4f331bc4e06..024587e8683 100644
--- a/lib/error_tracking/stacktrace_builder.rb
+++ b/lib/error_tracking/stacktrace_builder.rb
@@ -29,6 +29,10 @@ module ErrorTracking
exception_entry = payload['exception']
return unless exception_entry
+ # Some SDK send exception payload as Array. For exmple Go lang SDK.
+ # We need to convert it to hash format we expect.
+ exception_entry = { 'values' => exception_entry } if exception_entry.is_a?(Array)
+
exception_values = exception_entry['values']
stack_trace_entry = exception_values&.detect { |h| h['stacktrace'].present? }
stack_trace_entry&.dig('stacktrace', 'frames')