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
POSTtosentry.io— the DSN is still pointing at Sentry. Rotate to the GlitchReplay DSN from your project's SDK Setup page. - A
POSTtolocalhostor127.0.0.1— the SDK was passed a dev DSN by mistake. Checkprocess.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:
If you use a custom ingest domain, swap that in instead.connect-src 'self' https://glitchreplay.com;
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:
| Status | What it means |
|---|---|
401 Unauthorized | The DSN's sentry_key doesn't match any project. Most likely a typo, or the key was rotated. |
404 Not Found | The 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 Requests | You 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 / blocked | See 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, useinstrumentation-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_DSNbut the deploy environment never set it, so the variable is undefined andSentry.initearly-returns with no error. Confirm the env var is present in your build logs, not just in your local.envfile.
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 useprocessorBufferinternally. If you're seeing crashes insideSentry.initrather than missing events, addnodejs_compatto yourcompatibility_flags. - Edge runtime with
global_fetch_strictly_public— outboundfetch()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: 0orsampleRate: 0drops everything client-side.- A
beforeSendhook returningnullfor the event you're testing. Add aconsole.logat the top ofbeforeSendand confirm it fires. - A custom
ignoreErrorsregex 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