From 7ee1cf9446a4bb0c068823f2bad76cf09ca35cc1 Mon Sep 17 00:00:00 2001 From: Warren Lee <5959690+wrn14897@users.noreply.github.com> Date: Wed, 12 Mar 2025 14:52:43 -0700 Subject: [PATCH 1/3] fix: stacktrace parsing issue --- packages/app/src/components/DBRowOverviewPanel.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/app/src/components/DBRowOverviewPanel.tsx b/packages/app/src/components/DBRowOverviewPanel.tsx index 8cf4a48af2..73e931e5fc 100644 --- a/packages/app/src/components/DBRowOverviewPanel.tsx +++ b/packages/app/src/components/DBRowOverviewPanel.tsx @@ -1,5 +1,5 @@ import { useCallback, useContext, useMemo } from 'react'; -import { isString, pickBy } from 'lodash'; +import { isPlainObject, isString, pickBy } from 'lodash'; import { TSource } from '@hyperdx/common-utils/dist/types'; import { Accordion, Box, Divider, Flex, Text } from '@mantine/core'; @@ -70,7 +70,11 @@ export function RowOverviewPanel({ return [ { - stacktrace: JSON.parse(stacktrace ?? '[]'), + stacktrace: isPlainObject(stacktrace) + ? JSON.parse(stacktrace) + : isString(stacktrace) + ? stacktrace + : [], type: parsedEvents?.['exception.type'], value: typeof parsedEvents?.['exception.message'] !== 'string' From fce7ae49058d5cf4a3d62dd411b831e3b87a1f3c Mon Sep 17 00:00:00 2001 From: Warren Lee <5959690+wrn14897@users.noreply.github.com> Date: Wed, 12 Mar 2025 15:13:26 -0700 Subject: [PATCH 2/3] fix: handle JSON.parse exception --- packages/app/src/components/DBRowOverviewPanel.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/app/src/components/DBRowOverviewPanel.tsx b/packages/app/src/components/DBRowOverviewPanel.tsx index 73e931e5fc..6533f5bae8 100644 --- a/packages/app/src/components/DBRowOverviewPanel.tsx +++ b/packages/app/src/components/DBRowOverviewPanel.tsx @@ -68,13 +68,16 @@ export function RowOverviewPanel({ parsedEvents?.['exception.stacktrace'] || parsedEvents?.['exception.parsed_stacktrace']; + let parsedStacktrace = stacktrace ?? '[]'; + try { + parsedStacktrace = JSON.parse(stacktrace); + } catch (e) { + // do nothing + } + return [ { - stacktrace: isPlainObject(stacktrace) - ? JSON.parse(stacktrace) - : isString(stacktrace) - ? stacktrace - : [], + stacktrace: parsedStacktrace, type: parsedEvents?.['exception.type'], value: typeof parsedEvents?.['exception.message'] !== 'string' From be7e68c64f05d9d5482035be22208f8b29e0b950 Mon Sep 17 00:00:00 2001 From: Warren Lee <5959690+wrn14897@users.noreply.github.com> Date: Wed, 12 Mar 2025 15:15:25 -0700 Subject: [PATCH 3/3] style: rollback import --- packages/app/src/components/DBRowOverviewPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/src/components/DBRowOverviewPanel.tsx b/packages/app/src/components/DBRowOverviewPanel.tsx index 6533f5bae8..dd65e1fff8 100644 --- a/packages/app/src/components/DBRowOverviewPanel.tsx +++ b/packages/app/src/components/DBRowOverviewPanel.tsx @@ -1,5 +1,5 @@ import { useCallback, useContext, useMemo } from 'react'; -import { isPlainObject, isString, pickBy } from 'lodash'; +import { isString, pickBy } from 'lodash'; import { TSource } from '@hyperdx/common-utils/dist/types'; import { Accordion, Box, Divider, Flex, Text } from '@mantine/core';