getsentry / getsentry/sentry-javascript

INP metric: Too many spans with <unknown> target due to disappearing DOM elements

オープン
#18,409 コメント 8 件 リアクション 0 件 担当者 0 名 GitHub で見る
Bug Spans State: Blocked
主要言語
TypeScript
スター
8.7k
フォーク
1.8k
平均マージ
1日 17時間
マージ済み PR(30日)
515

説明

### Problem Statement

We are seeing a large number of INP-related spans where the clicked element is reported as ``.
This happens when the user clicks UI elements that immediately disappear from the DOM right after the interaction — most commonly:

- closing buttons (e.g., closing a modal),
- clearing input with an “X” button,
- removing items from lists, cards, etc.

Because these elements are removed, by the time Sentry processes the INP event, `e.target` is already `null`, which results in spans showing `` instead of the actual clicked element.
This significantly reduces the usefulness and traceability of INP measurements.

### Solution Brainstorm

A potential fix is to capture and cache metadata about the clicked element at the moment of the click event — before the element disappears.

Example approach:

1. On click, immediately compute and store the result of `htmlTreeAsString(event.target)` (or an equivalent helper used for INP).
2. When constructing INP spans, use the cached `htmlTreeAsString` value instead of trying to read `event.target` again (which may already be null after DOM removal).

### Product Area

Unknown

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。