23 May 2026
01:20 PM
- last edited on
25 May 2026
01:30 PM
by
MaciejNeumann
Hello Community,
We are noticing a discrepancy between the actions visible in the User Session timeline and the results returned from querying the userAction table.
Session contains the following visible events related to /en/home:
Load → loading of page /en/home
Page change → /en/home
From the session timeline, the total visible /en/home actions are 10.
However, when querying userAction, we are getting lower counts.
Query #1:
SELECT count(*)
FROM userAction
WHERE (
targetUrl LIKE "%/en/home%"
OR name = "loading of page /en/home"
)
AND application = "xxxxxx"
AND usersession.internalUserId = "xxxxxxxx"
Result: 7
Query #2:
SELECT count(*)
FROM userAction
WHERE (
name = "loading of page /en/home"
OR name = "/en/home"
)
AND application = "xxxxxxxx"
AND usersession.internalUserId = "xxxxxxxxxxxxxxxxxxxxx"
Result: 4
It seems that some “Page change” events visible in the session timeline are not queryable from the userAction table.
Has anyone faced similar behavior before?
Is there a recommended way to retrieve all visible session timeline actions (including Page change events) through queries?
Thanks.
Aboud
Solved! Go to Solution.
25 May 2026 12:15 PM
Hi @Aboud1
This is expected behavior. "Page change" events in the session timeline are route change detections that don't always get promoted to full user actions in the userAction table.
The userAction table only contains actions that triggered measurable network/rendering activity (Load, XHR, Custom actions). Route changes displayed in the timeline are visual markers — not queryable via USQL unless they generated actual XHR calls.
Try this to get closer:
SELECT count(*), type
FROM userAction
WHERE application = "xxxxxx"
AND usersession.internalUserId = "xxxxxxxx"
AND name LIKE "%/en/home%"
GROUP BY type
Also check if missing actions were captured as XHR type with auto-generated names rather than the page URL.
Thanks,
Sujit
02 Jun 2026 07:52 AM
Thanks, Sujit.
I did some additional investigation with Dynatrace Support, and it appears that the missing Page Change entries are actually stored in the userEvent table rather than userAction.
For the same session:
SELECT count(*), name, page
FROM userEvent
WHERE application = "XXXX"
AND usersession.internalUserId = "XXXX"
GROUP BY name, pagereturns:
which exactly matches the Page Change entries visible in the session timeline.
So the discrepancy seems to come from the fact that the timeline combines both userAction and userEvent records, while USQL does not allow querying both datasets together.
I think this means there is no single USQL query that returns the same count shown in the timeline.
Thanks for your help.
02 Jun 2026 10:32 AM
Hi @Aboud1
Thanks for sharing the findings from Support — that's really useful to know!
Thanks,Sujit
Featured Posts