Live Users — troubleshooting
This page covers issues unique to Live Users (luw.js). Most widget failures are environment-related — see common troubleshooting first (ad blockers, CSP, D3 version conflicts).
Live Users depends on:
- D3.js from
https://d3js.org/d3.v6.min.js(for the bar chart) - Country flag SVGs from
https://cdn.jsdelivr.net/gh/lipis/flag-icons/...(loaded per row) - Two parallel API calls:
statable.com/api/widget/realtimeandstatable.com/api/widget/top-countries
It does not load TopoJSON or the world atlas — those are Globe/Map only.
"API error" surfaced by either of two endpoints
Because Live Users fires two requests in parallel, an API error: <status> could mean either failed. The Network tab is the fastest way to see which one:
GET https://statable.com/api/widget/realtime?hash=<HASH>
GET https://statable.com/api/widget/top-countries?hash=<HASH>&p=1r&limit=<LIMIT>
See shared API errors for what each status code means.
Widget shows "Waiting for the first visitor"
This is the empty state, not an error. It renders when the realtime API returns zero visitors in the last 30 minutes and the countries call returns an empty list. The widget is healthy — your site simply doesn't have live traffic right now.
Verification steps:
- Confirm the tracking script is installed and the snippet matches the site whose
data-hashyou're using. - Open the site in a separate tab, browse a few pages, wait ~30 seconds, then refresh the widget.
- Check Site settings → General in the dashboard for the current pageview rate.
The empty state is also expected for sites where most visits are blocked by privacy signals (DNT, GPC, opt-out flag).
Live counter never updates after the initial load
Live Users fetches its data once when the widget initialises. There's no polling, no setInterval, no WebSocket. The "live" framing refers to the data window (the last 30 minutes the API aggregates), not to refresh cadence.
If you need the numbers to refresh continuously (e.g. a wall display):
That reloads the whole page every 60 seconds.
Console warning about data-width
Just a console warning — not an error. The widget enforces a 180 px minimum because country flags + counts are unreadable below that. The widget still renders at 180 px regardless of what you passed. Either set data-width="180" or higher in your snippet to silence the warning, or ignore it.
Counter renders but the country list is blank
If the live counter shows a number but the country rows below are empty, the top-countries call returned data: [] while realtime succeeded. This usually means your traffic is all from Unknown country (visits without a country header) — those collapse into the "Others" row and aren't listed individually.
This isn't a widget bug. If it persists for sites with real geographic traffic, contact support with the response body from the top-countries call.
Ready to take control of your web analytics? Try Statable free for 30 days — no credit card required, full feature access, GDPR-compliant by default. Start your free trial or view a live demo.