Rage, dead and error clicks are part of the Pro and Pro+SPA browser agent's frustration signals. Read the docs
Checking for browser agent…
New Relic frustration signals

Click until
it hurts.

Mash a button, click into the void, or break on click. The browser agent turns each into a signal: rage click, dead click, error click. Trigger all three, then find them in a shared account.

All three signals land as the same event type with a boolean flag: rageClick, deadClick, errorClick. It's automatic: user_actions.enabled defaults to true on the Pro and Pro+SPA agent, so no snippet change was needed for this page.
// Rage click: 4+ clicks, same element, under 1s
button.click() // x4, fast
// -> rageClick: true

// Dead click: a button/link click, then 2s of nothing
function onSubmit() { /* ...nothing visible happens... */ }
// -> deadClick: true

// Error click: a click, then an error inside that 2s
newrelic.noticeError(err)
// -> errorClick: true
Your data is tagged as … NR-XXXX Change

Everyone shares one New Relic account, so your clicks are tagged as demoUser and demoCode custom attributes (your name is also set as your end-user ID via setUserId()), carried onto every UserAction event you generate below.

Write this code down. You will search for NR-XXXX in the queries further down. It stays the same on every page until you click New code or close this tab.

Try it / Trigger a signal

Click like you mean it

Each card below is wired to trip exactly one signal. The agent decides what counts, and this page has no way to read its verdict back, so the activity feed on the right only shows what you did locally. Give it a minute or two, then check the queries below for what New Relic actually recorded.

How the agent decides

Three ways a click says something's wrong

This runs automatically. Nothing on this page tells the agent what counts. It's on by default on the Pro and Pro+SPA browser agent (init.user_actions.enabled), watching every click on every page.

Rage click: the same element gets 4 or more clicks, and the first and the fourth land under a second apart.

Dead click: a click on a button or link, then 2 seconds in which nothing on the page changes: no DOM update, no request, no navigation.

Error click: a click on a button or link, then a JavaScript error inside that same 2-second window, thrown or reported with noticeError().

1 · Rage click

Click like it's broken

Click the button below 4 or more times, fast, all within about a second.

0 clicks in the last second.

2 · Dead click

Click into the void

Click the button below and wait. It won't do anything for 2 seconds. That's the point. Wait a few seconds after the page loads first, so this page's own background checks don't count as "something happening."

3 · Error click

Click, then break

Click the button below. It reports a handled error with newrelic.noticeError() right after, the same signal an uncaught error would send.

Nothing sent yet.

Find it / Search the shared account

Find your clicks

Allow a minute or two for events to arrive. Everything below is already filled in with your code, NR-XXXX.

All your clicks

  1. Open the query builder in New Relic and run this. rageClick, deadClick and errorClick are booleans: true only when that signal fired.
  2. Everything else about the click (which element, how many times, how long) is on the same row.

          
Open New Relic

Just your rage clicks


          

Just your dead clicks


          

Just your error clicks


          

See it in the UI

  1. Go to Browser, open the demo app, then Users → User impact → Frustration metrics for the aggregate view: rage click trends, top affected pages and elements.
  2. Filter any of the above by demoCode = NR-XXXX to see only your clicks.
  3. Session Replay is already on for this app. Open a session that includes one of your clicks and watch it happen.
Not seeing a rage click?All 4+ clicks need to land within one second of each other. Click faster, or get a friend to help.
Not seeing a dead click?Any DOM change counts as "something happened," including this page's own background checks right after load. Wait a few seconds, then try again.