From 0063757d4c53bf0d450c2137e9439a024ec7ad02 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Wed, 13 May 2026 11:03:52 -0700 Subject: [PATCH 1/3] add raw versions of error value variables --- src/sentry/grouping/fingerprinting/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/grouping/fingerprinting/utils.py b/src/sentry/grouping/fingerprinting/utils.py index 2fe544bbe5d820..f51a4cd9634912 100644 --- a/src/sentry/grouping/fingerprinting/utils.py +++ b/src/sentry/grouping/fingerprinting/utils.py @@ -246,7 +246,7 @@ def resolve_fingerprint_variable( exception_type = get_path(event.data, "exception", "values", -1, "type") return exception_type or "" - elif variable_key in ("value", "error.value"): + elif variable_key in ("value", "raw_value", "error.value", "error.raw_value"): value = get_path(event.data, "exception", "values", -1, "value") return value or "" From f3056dab1814bc4e9c85ca54b9205874dd0a3a56 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Wed, 13 May 2026 11:04:54 -0700 Subject: [PATCH 2/3] apply parameterization to error value fingerprint variables --- src/sentry/grouping/fingerprinting/utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sentry/grouping/fingerprinting/utils.py b/src/sentry/grouping/fingerprinting/utils.py index f51a4cd9634912..9d68883942635a 100644 --- a/src/sentry/grouping/fingerprinting/utils.py +++ b/src/sentry/grouping/fingerprinting/utils.py @@ -337,7 +337,10 @@ def _resolve_single_entry(entry: str) -> str: if resolved_value is None: # variable wasn't recognized return entry - if variable_key == "message" and resolved_value != "": + if variable_key in ("message", "value", "error.value") and resolved_value not in ( + "", + "", + ): return normalize_message_for_grouping( resolved_value, context, reason="fingerprint_variable", trim_message=False ) From c4b0c64ce39e3a977040682eb192646235d2299c Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Wed, 13 May 2026 11:05:14 -0700 Subject: [PATCH 3/3] add tests --- tests/sentry/grouping/test_fingerprinting.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/sentry/grouping/test_fingerprinting.py b/tests/sentry/grouping/test_fingerprinting.py index 4a68a274a42ec6..1630dc9eaaab5a 100644 --- a/tests/sentry/grouping/test_fingerprinting.py +++ b/tests/sentry/grouping/test_fingerprinting.py @@ -295,7 +295,11 @@ def test_variable_resolution() -> None: ("{{ default }}", "{{ default }}"), ("{{ dog }}", ""), ("{{ message }}", "That's ball number that Charlie hasn't brought back!"), + ("{{ value }}", "That's ball number that Charlie hasn't brought back!"), + ("{{ error.value }}", "That's ball number that Charlie hasn't brought back!"), ("{{ raw_message }}", "That's ball number 6 that Charlie hasn't brought back!"), + ("{{ raw_value }}", "That's ball number 6 that Charlie hasn't brought back!"), + ("{{ error.raw_value }}", "That's ball number 6 that Charlie hasn't brought back!"), ]: assert resolve_fingerprint_values([fingerprint_entry], event, context) == [ expected_resolved_value