getsentry / getsentry/sentry-javascript

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

Đang mở
#18,409 8 bình luận 0 reaction 0 người được giao Xem trên GitHub
Bug Spans State: Blocked
Ngôn ngữ chính
TypeScript
Star
8.7k
Fork
1.8k
Merge trung bình
1 ngày 17 giờ
Pull request đã merge (30 ngày)
523

Mô tả

### 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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu từ phần xử lý tương tác INP và xây dựng span, sau đó lần theo nơi e.target và htmlTreeAsString được đọc. Xác minh cách một lần nhấp vào phần tử đã bị xóa khỏi DOM được biểu diễn, đồng thời xác định các test hiện có cho span INP hoặc các target biến mất. Hoàn tất khi các span đó giữ lại metadata của phần tử được nhấp thay vì hiển thị .

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript, typescript
Lĩnh vực
frontend, observability-sre, performance
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.