Errors
Qubix records the runtime errors that happen on the pages of your PWA storefront as visitors open them — a script that failed, an icon that would not load, and so on. Collecting these errors helps you spot a broken app before it wastes traffic.
A separate Errors tab inside the app card, with a grouped list of errors and a repeat counter, is planned but not built yet. For now the errors are visible only through a read-only query — described below. The interface does not show them yet.
Where the errors are stored
The errors are collected into a single table, pwa_errors. Each row is one error that fired on a storefront page, kept for 90 days. The fields you will use most:
| Field | What it holds |
|---|---|
type | The kind of error — for example a script error or a failed resource. |
message | The error text. |
event_time | When the error happened. |
geo | The visitor's country. |
device | The visitor's device description. |
There are more columns for a deeper look: domain (the entry point the visitor came through), piuid (the visitor id), ip, ua (the browser's user-agent), stack (the technical stack trace) and context (extra details about where it fired).
How to read them
The friendliest way is to ask the built-in AI assistant — the panel available on every screen of the admin panel. It can run read-only queries for you, so a plain request such as "show me the errors for this PWA over the last day" returns the list without any SQL on your side. See AI Analyst chat.
The same read-only query method is available to an external client over MCP (see MCP/API) and, for an administrator with direct database access, as a plain query. Whichever path you use, you only ever see the errors of the apps you are allowed to see — a buyer sees their own apps, an administrator sees everything.
Finding the app id
The queries below need the app's id. Open the app card and copy the id from the address bar: the card lives at .../#/pwa/APP_ID, where APP_ID is a value like 01f77c11-ed56-4555-857e-46f380593d5d.
Example: recent errors for one app
SELECT event_time, type, message, geo, device, domain
FROM pwa_errors
WHERE pwa_id = 'APP_ID'
AND event_time > now() - INTERVAL 24 HOUR
ORDER BY event_time DESC
Example: the same errors grouped, with a repeat counter
This mirrors what the future tab will show — identical errors folded together with how many times each one fired and when it was last seen:
SELECT type, message, count() AS hits, max(event_time) AS last_seen
FROM pwa_errors
WHERE pwa_id = 'APP_ID'
AND event_time > now() - INTERVAL 7 DAY
GROUP BY type, message
ORDER BY hits DESC