diff --git a/static/app/components/stackTrace/frame/frameHeader.tsx b/static/app/components/stackTrace/frame/frameHeader.tsx index 1de7d85777a77f..6f17ae78c07a3b 100644 --- a/static/app/components/stackTrace/frame/frameHeader.tsx +++ b/static/app/components/stackTrace/frame/frameHeader.tsx @@ -126,7 +126,9 @@ function FrameLocation({ }) { const {event} = useStackTraceFrameContext(); const frameDisplayPath = getFrameDisplayPath(frame, platform, event); - const frameLocationSuffix = formatFrameLocation('', frame.lineNo, frame.colNo); + const frameLocationSuffix = frame.inApp + ? formatFrameLocation('', frame.lineNo, frame.colNo) + : ''; return ( diff --git a/static/app/components/stackTrace/stackTrace.spec.tsx b/static/app/components/stackTrace/stackTrace.spec.tsx index 62df2e5f9e082a..797dac93cafd10 100644 --- a/static/app/components/stackTrace/stackTrace.spec.tsx +++ b/static/app/components/stackTrace/stackTrace.spec.tsx @@ -740,6 +740,34 @@ describe('Core StackTrace', () => { expect(screen.queryByText(':0:0')).not.toBeInTheDocument(); }); + it('does not render line number for non-in-app frames', async () => { + const {event, stacktrace} = makeStackTraceData(); + const frame = stacktrace.frames[stacktrace.frames.length - 1]!; + + render( + + + + ); + + expect(await screen.findByText('library_internal.py')).toBeInTheDocument(); + // Line number not shown for non-in-app frames + expect(screen.queryByText(/42/)).not.toBeInTheDocument(); + }); + it('falls back to raw function and renders trimmed package in title metadata', async () => { const {event, stacktrace} = makeStackTraceData(); const frame = stacktrace.frames[stacktrace.frames.length - 1]!;