My events aren't showing up

You installed the SDK, triggered an error on purpose, and the dashboard is empty. Here's the diagnostic order — six checks, in priority sequence.

Almost every "no events" report comes down to one of six problems. They're ordered below by how often we see them in support — work top-down, and stop as soon as you find the one that applies.

1. The browser is sending the request to the wrong host

Open devtools, trigger your test error (throw new Error("test") works), and look at the Network tab. You should see a POST to https://glitchreplay.com/api/0/envelope/ (or your custom domain). Anything else means the DSN is misconfigured.

  • A POST to sentry.io — the DSN is still pointing at Sentry. Rotate to the GlitchReplay DSN from your project's SDK Setup page.
  • A POST to localhost or 127.0.0.1 — the SDK was passed a dev DSN by mistake. Check process.env.NEXT_PUBLIC_* / VITE_* / NEXT_PUBLIC_ in your build pipeline.
  • No request at all in the network tab — the SDK isn't initializing. Skip to step 4.

2. The request is being blocked before it leaves the browser

If the request is in the network tab but shows as (blocked:other), net::ERR_BLOCKED_BY_CLIENT, or stays at (pending) indefinitely, the browser blocked it. Two common causes:

  • Ad blockers and privacy extensions. uBlock Origin, Privacy Badger, and Brave Shields all match aggressive patterns. Test in a private window with extensions disabled. If the event arrives there but not in your normal window, that's your answer — see the Resource verification docs for how to detect this in production.
  • Your CSP is blocking the endpoint. If your Content-Security-Policy doesn't list the GlitchReplay host under connect-src, the browser silently drops the request and logs a violation. Add it:
    connect-src 'self' https://glitchreplay.com;
    If you use a custom ingest domain, swap that in instead.

3. The server returned an error instead of accepting the event

Click on the POST /api/0/envelope/ request in devtools and check the response status:

StatusWhat it means
401 UnauthorizedThe DSN's sentry_key doesn't match any project. Most likely a typo, or the key was rotated.
404 Not FoundThe project ID in the DSN doesn't exist. Check the path after https://glitchreplay.com/: it should look like /api/0/envelope/ with the project ID embedded in the DSN's host portion.
429 Too Many RequestsYou hit your plan's event cap for the month. Free plans return 429 with a Retry-After header set to the seconds remaining until the next UTC month. Replay items also drop on a session over-cap, but events still flow.
0 / blockedSee step 2 — the browser dropped it.

4. The SDK never initialized

If there's no envelope POST at all, the SDK isn't running. The most common reasons:

  • Init order. Your error fires before Sentry.init. Move the init call to the top of your entrypoint (app/layout.tsx, instrumentation-client.ts, or your bundler's entry file). With @sentry/nextjs, use instrumentation-client.ts — it runs before any of your code.
  • Tree-shaken out. Some bundlers will tree-shake the init if the return value is unused. Make sure you call Sentry.init({...}) as a side-effect statement, not inside an unused export.
  • Missing env var at build time. Your DSN comes from process.env.NEXT_PUBLIC_SENTRY_DSN but the deploy environment never set it, so the variable is undefined and Sentry.init early-returns with no error. Confirm the env var is present in your build logs, not just in your local .env file.

5. The runtime can't make outbound network requests

Server-side runtimes have their own networking constraints — the browser-tab playbook above doesn't apply. The most common gotchas:

  • Cloudflare Workers without nodejs_compat — some SDKs use process or Buffer internally. If you're seeing crashes inside Sentry.init rather than missing events, add nodejs_compat to your compatibility_flags.
  • Edge runtime with global_fetch_strictly_public — outbound fetch() only works to public hosts. The GlitchReplay endpoint is public, so this should be fine, but if you're using a custom ingest domain that points at a private IP, that flag will block you.
  • Lambda VPC without a NAT gateway — your function can't reach the public internet. Add a NAT or run outside the VPC.

6. The event is being dropped by your own code

This is the rarest case but worth a check before you give up:

  • tracesSampleRate: 0 or sampleRate: 0 drops everything client-side.
  • A beforeSend hook returning null for the event you're testing. Add a console.log at the top of beforeSend and confirm it fires.
  • A custom ignoreErrors regex that's broader than you intended.

Still stuck?

Most surviving cases are either a custom ingest domain (DNS, TLS, firewall), an SDK version that doesn't support the envelope protocol, or a corporate proxy stripping the request. Email support@glitchreplay.com with the failing request URL, the response status, and your DSN's public key (the sentry_key portion is safe to share — it identifies the project, not the user).

Related: Getting started · SDK setup · Resource verification