Browse Source

bug(replays): Ignore dead click if the node value is missing (#52520)

https://sentry.sentry.io/issues/4232083791
Colton Allen 1 year ago
parent
commit
8ba4b18d6f

+ 3 - 1
src/sentry/replays/usecases/ingest/dead_click.py

@@ -13,7 +13,9 @@ def report_dead_click_issue(project_id: int, replay_id: str, event: SentryEvent)
     payload = event["data"]["payload"]
 
     # Only timeout reasons on <a> and <button> tags are accepted.
-    if payload["data"]["endReason"] != "timeout":
+    if "node" not in payload["data"]:
+        return False
+    elif payload["data"]["endReason"] != "timeout":
         return False
     elif payload["data"]["node"]["tagName"] not in ("a", "button"):
         return False

+ 15 - 0
tests/sentry/replays/unit/test_dead_click_issue.py

@@ -59,3 +59,18 @@ def test_report_dead_click_issue_mutation_reason():
 
     reported = report_dead_click_issue(project_id=1, replay_id="", event=event)
     assert reported is False
+
+
+@django_db_all
+def test_report_dead_click_issue_no_node_object():
+    event = {
+        "data": {
+            "payload": {
+                "data": {"endReason": "mutation"},
+                "message": "div.xyz > a",
+                "timestamp": time.time(),
+            }
+        }
+    }
+
+    assert report_dead_click_issue(project_id=1, replay_id="", event=event) is False