-
{filename}
- {functionName ? (
-
- in
- {functionName}
-
- ) : null}
- {lineno && colno ? (
-
-
at line
+
+
+
{filename}
+ {functionName ? (
+
+ in
+ {functionName}
+
+ ) : null}
+ {lineno && colno ? (
+
+ at line
+
+ {lineno}:{colno}
+
+
+ ) : null}
+
+ {!resolved && (
+
- {lineno}:{colno}
+ Unresolved
+ }
+ size="xsmall"
+ onClick={() => setUploadSymbolSetReference(filename)}
+ tooltip="Upload source map"
+ />
- ) : null}
+ )}
),
content: null,
@@ -78,7 +104,7 @@ function ChainedStackTraces({ exceptionList }: { exceptionList: Exception[] }):
/>
{exceptionList.map(({ stacktrace, value }, index) => {
- const { frames } = stacktrace || {}
+ const { frames, type } = stacktrace || {}
if (!showAllFrames && !frames?.some((frame) => frame.in_app)) {
// if we're not showing all frames and there are no in_app frames, skip this exception
return null
@@ -87,7 +113,11 @@ function ChainedStackTraces({ exceptionList }: { exceptionList: Exception[] }):
return (
{value}
-
+
)
})}
diff --git a/frontend/src/lib/components/Errors/stackFrameLogic.tsx b/frontend/src/lib/components/Errors/stackFrameLogic.tsx
index 3852055d12b..d8b0874258a 100644
--- a/frontend/src/lib/components/Errors/stackFrameLogic.tsx
+++ b/frontend/src/lib/components/Errors/stackFrameLogic.tsx
@@ -1,9 +1,3 @@
-import { kea, path } from 'kea'
-import { loaders } from 'kea-loaders'
-import api from 'lib/api'
-
-import type { stackFrameLogicType } from './stackFrameLogicType'
-
export interface StackFrame {
filename: string
lineno: number
@@ -11,20 +5,3 @@ export interface StackFrame {
function: string
in_app?: boolean
}
-
-export const stackFrameLogic = kea
([
- path(['components', 'Errors', 'stackFrameLogic']),
- loaders(({ values }) => ({
- stackFrames: [
- {} as Record,
- {
- loadFrames: async ({ frameIds }: { frameIds: string[] }) => {
- const loadedFrameIds = Object.keys(values.stackFrames)
- const ids = frameIds.filter((id) => loadedFrameIds.includes(id))
- await api.errorTracking.fetchStackFrames(ids)
- return {}
- },
- },
- ],
- })),
-])
diff --git a/frontend/src/scenes/error-tracking/ErrorTrackingConfigurationScene.tsx b/frontend/src/scenes/error-tracking/ErrorTrackingConfigurationScene.tsx
index a9ff35ce7bd..57909bb3272 100644
--- a/frontend/src/scenes/error-tracking/ErrorTrackingConfigurationScene.tsx
+++ b/frontend/src/scenes/error-tracking/ErrorTrackingConfigurationScene.tsx
@@ -1,25 +1,30 @@
import { IconUpload } from '@posthog/icons'
-import { LemonButton, LemonFileInput, LemonModal, LemonTable } from '@posthog/lemon-ui'
+import { LemonButton, LemonTable } from '@posthog/lemon-ui'
import { useActions, useValues } from 'kea'
-import { Form } from 'kea-forms'
-import { IconUploadFile } from 'lib/lemon-ui/icons'
-import { LemonField } from 'lib/lemon-ui/LemonField'
import { SceneExport } from 'scenes/sceneTypes'
-import { errorTrackingConfigurationSceneLogic } from './errorTrackingConfigurationSceneLogic'
+import { errorTrackingSymbolSetLogic } from './errorTrackingSymbolSetLogic'
+import { SymbolSetUploadModal } from './SymbolSetUploadModal'
export const scene: SceneExport = {
component: ErrorTrackingConfigurationScene,
- logic: errorTrackingConfigurationSceneLogic,
+ logic: errorTrackingSymbolSetLogic,
}
export function ErrorTrackingConfigurationScene(): JSX.Element {
- const { missingSymbolSets, missingSymbolSetsLoading } = useValues(errorTrackingConfigurationSceneLogic)
- const { setUploadSymbolSetReference } = useActions(errorTrackingConfigurationSceneLogic)
+ const { setUploadSymbolSetReference } = useActions(errorTrackingSymbolSetLogic)
+ const { missingSymbolSets, missingSymbolSetsLoading } = useValues(errorTrackingSymbolSetLogic)
return (
+
Missing symbol sets
+
+ Source maps are required to demangle any minified code in your exception stack traces. PostHog
+ automatically retrieves source maps where possible. Cases where it was not possible are listed below.
+ Source maps can be uploaded retroactively but changes will only apply to all future exceptions ingested.
+
-
setUploadSymbolSetReference(null)} />
+
)
}
-
-const SymbolSetUploadModal = ({ onClose }: { onClose: () => void }): JSX.Element => {
- const { uploadSymbolSetReference, isUploadSymbolSetSubmitting, uploadSymbolSet } = useValues(
- errorTrackingConfigurationSceneLogic
- )
-
- return (
-
-
- }
- />
-
-
-