Ghost pointer interaction incurs INP

52 views
Skip to first unread message

Dimitar Bojantchev

unread,
Jul 4, 2025, 4:25:22 PM Jul 4
to web-vitals-feedback
Hello, I see a weird issue with INP calculation in one case where I click the mouse once, it triggers some activities and then a new "ghost" interaction occurs, which seems to accumulate a lot of INP. Is there any explanation for why this long interaction appears consistently? It is a case of clicking away from a modal window, then doing some snippets trying to yield to the main thread via setTimeout() and requestAnimationFramne() before the nextjs router to be invoked. That weird INP occurs consistently  in that scenario, but I have bnoit seen it in other cases. Any help or suggestions will be much appreciated. Ghost click.png

Michal Mocny

unread,
Jul 5, 2025, 9:14:07 AM Jul 5
to Dimitar Bojantchev, web-vitals-feedback
My guess is that this is pointerdown + pointerup (or click), so two separate gestures which are part of the same logical user interaction.

The red highlighted area marks "long" interactions, and it sorta makes it look like the event started processing in the middle of the Timer Task-- but it's actually still just marking the input delay whisker (i.e. still waiting for that timer task to yield).  I suspect that if we saw to the right of the trace you would see an event listener task and you could see the actual event type.

If that isn't it-- could you share a trace given that you can reproduce consistently?

Ideally also:
- Enable DevTools experimental feature to "Performance Panel: show all events"
- Uploading to trace.cafe

Cheers,

On Fri, Jul 4, 2025 at 4:25 PM 'Dimitar Bojantchev' via web-vitals-feedback < web-vital...@googlegroups.com > wrote:
Hello, I see a weird issue with INP calculation in one case where I click the mouse once, it triggers some activities and then a new "ghost" interaction occurs, which seems to accumulate a lot of INP. Is there any explanation for why this long interaction appears consistently? It is a case of clicking away from a modal window, then doing some snippets trying to yield to the main thread via setTimeout() and requestAnimationFramne() before the nextjs router to be invoked. That weird INP occurs consistently  in that scenario, but I have bnoit seen it in other cases. Any help or suggestions will be much appreciated. Ghost click.png
--
You received this message because you are subscribed to the Google Groups "web-vitals-feedback" group.
To unsubscribe from this group and stop receiving emails from it, send an email to web-vitals-feed...@googlegroups.com .
To view this discussion visit https://groups.google.com/d/msgid/web-vitals-feedback/216cc830-847e-47f2-a153-dbe73bb73d2dn%40googlegroups.com .
Reply all
Reply to author
Forward
0 new messages