Skip to content

Commit dbdb64c

Browse files
authored
fix(auto_source_config): Fix None intermingled with valid frames (#87399)
Fixes [SENTRY-3NS9](https://sentry.sentry.io/issues/6299550160/)
1 parent a63a847 commit dbdb64c

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/sentry/issues/auto_source_code_config/stacktraces.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ def get_frames_to_process(data: NodeData | dict[str, Any], platform: str) -> lis
1919
for stacktrace in stacktraces:
2020
frames = stacktrace["frames"] or []
2121
for frame in frames:
22+
if frame is None:
23+
continue
2224

2325
if platform_config.creates_in_app_stack_trace_rules():
2426
frames_to_process.append(frame)

tests/sentry/issues/auto_source_code_config/test_stacktraces.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ def _stacktrace(frames: list[dict[str, Any]]) -> dict[str, Any]:
1313
return {"stacktrace": {"frames": frames}}
1414

1515

16+
BASIC_FRAME = {"in_app": True, "filename": "foo"}
17+
18+
1619
@pytest.mark.parametrize(
1720
"frames, platform, expected",
1821
[
@@ -83,7 +86,8 @@ def test_get_frames_to_process(
8386
(None, []),
8487
([None], []),
8588
([], []),
86-
([{"in_app": True}], []),
89+
([{"in_app": True}], []), # Both in_app and filename are required
90+
([BASIC_FRAME, None], [BASIC_FRAME]), # Handle intermixing of None and dicts
8791
],
8892
)
8993
def test_with_invalid_frames(frames: list[dict[str, Any]], expected: list[str]) -> None:

0 commit comments

Comments
 (0)