Events not showing
Work through this list in order. Most problems are one of the first five.
1. Look at Live first
Open Live. It shows the newest events within seconds and refreshes every 10 seconds. If an event is on Live, it arrived: the problem is a report filter, not the SDK.
2. Turn on debug mode
Every SDK logs each call and why an event was dropped:
rabolic.init({ projectKey: 'rb_pub_…', debug: true })
await Rabolic.init(const RabolicConfig(projectKey: 'rb_pub_…', debug: true));
const rabolic = new Rabolic({ secretKey: process.env.RABOLIC_SECRET_KEY, debug: true })
To test a key and host without your app, run:
npx rabolic check --key rb_pub_…
3. Check the environment filter
The filter bar shows Production by default. Events take their environment from the key: a staging or development key sends to Staging or Development. Switch the environment select, or use a production key.
4. Check the key
- The right project? Each project has its own keys. Copy the key again from Integrations → API keys in the project you're looking at.
- The right kind? Browsers and apps need a publishable key (
rb_pub_). The web, React Native and Flutter SDKs refuse secret keys; the Node.js SDK refuses publishable keys. Withdebug: true, the SDK says so. - Revoked? A revoked key gets
401 invalid_key, and the SDK stops sending until the app restarts.
5. Check consent
With consent: 'pending', the SDK keeps events in memory and sends nothing until setConsent('granted'). With 'denied', it drops them. Make sure your consent banner calls setConsent().
6. Check what reports leave out
Reports leave out:
- bots, when Bot filtering is on in Project settings;
- internal traffic from the IP ranges in Project settings, such as your office;
- events outside the date range and platforms you picked.
Bot and internal flags are set when an event arrives.
7. Check for dropped events
Events are dropped, not recorded, when:
- the trial ended, the plan ended, or the organization has no plan;
- the plan's allowance is used up and overage is off, or the spending limit is reached;
- the trial's 250,000-event cap is reached;
- a project's monthly cap is reached.
Usage & billing shows dropped events, and the dashboard shows a banner when events aren't recorded. See Usage and overage.
8. Check for rejected events
Usage & billing also shows rejected events. Common causes:
- revenue events sent with a publishable key (
revenue_needs_secret_key); - a custom event name starting with
$(reserved_name); - an event over 32 KB (
too_large); - a timestamp more than 30 days old (
too_old).
See Rejection reasons.
9. Give reports a minute
Reports that include today are cached for a minute, so trends catch up within about a minute of Live. Choose Updated … ago in the filter bar to refresh.
10. Revenue is missing
- Revenue events need a secret key, from your server or Dodo Payments.
- With Dodo Payments connected, revenue events from your server add no revenue: the webhooks are the revenue. See One revenue source per project.
- Check the Dodo Payments card in Integrations → Payments for failed webhook events.
Still stuck?
Write to support@rabolic.com with your project, the SDK and its version, and what debug: true logs.
Limits
Rabolic's limits. Event size (32,768 bytes), names, properties, batches, request size, SDK queue sizes, event age, rate limits, and the rejection reasons ingest returns.
AI connector
Connect Claude, ChatGPT, Claude Code or Cursor to Rabolic over MCP and ask about your analytics in plain language. Read-only, with your own access.