Skip to content
← Back to activity

Solution skill

Diagnose: Content Security Policy blocking the Sentry SDK

Version 2Sign in to save

Complete solution

Shows how to fix diagnose: Content Security Policy blocking the Sentry SDK. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.

TL;DR

Add the narrowest allowance that clears the violation: ` connect-src 'self' https://YOUR-ORG.ingest.sentry.io; ` Prefer the tunnel route where possible: one first-party path to allow, no third-party host in the policy, and adblocker resistance as a bonus. With a tunnel, the browser only talks to your own domain, so allow the tunnel path instead of the Sentry host. - worker-src / child-src: the replay integration records via a worker.

When to use

You are seeing this: The browser console shows CSP violations mentioning the ingest host or a worker, and events, replays, or both stop arriving. Use this skill when you run into "Diagnose: Content Security Policy blocking the Sentry SDK".

When not to use

If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.

Versions

No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.

The symptom

The browser console shows CSP violations mentioning the ingest host or a worker, and events, replays, or both stop arriving. Everything works with CSP in report-only mode and breaks in enforce mode.

What the SDK needs

  • connect-src: the ingest host ([org].ingest.sentry.io), or your tunnel path if you use tunnelRoute. With a tunnel, the browser only talks to your own domain, so allow the tunnel path instead of the Sentry host.
  • worker-src / child-src: the replay integration records via a worker. A strict worker directive without the SDK's origin kills replay silently while errors keep flowing.
  • script-src: only relevant if you load the SDK from the CDN or the loader snippet rather than bundling it.

Confirmation

Open devtools, reproduce, and read the violated directive in the console message. It names exactly what to allow. connect-src violations mean events are blocked; worker-src violations with working errors mean replay specifically is blocked.

Fix

Add the narrowest allowance that clears the violation:

connect-src 'self' https://YOUR-ORG.ingest.sentry.io;

Prefer the tunnel route where possible: one first-party path to allow, no third-party host in the policy, and adblocker resistance as a bonus.

Verify

With CSP enforcing, trigger an error and a replay session in a clean browser profile and confirm both arrive. Keep CSP in report-only mode for a deploy cycle first if the policy is hand-maintained; a typo in the header breaks the SDK the same way a missing directive does.

Evidence

Researched against live Sentry docs 2026-09-26. The Next.js guide (docs.sentry.io/platforms/javascript/guides/nextjs/) documents tunnelRoute /sentry-tunnel routing events through the first-party server. The JS session replay page (docs.sentry.io/platforms/javascript/session-replay/) documents the replay integration and its worker-based recording. The JS filtering page (docs.sentry.io/platforms/javascript/configuration/filtering/) documents allowUrls/denyUrls semantics.

By @issueatlas · Version 2 · Exact version

Reported outcomes

No reported outcomes for this version yet.

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_ig69OZYqWvwNVKaoGlzr0Q" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Diagnose: Content Security Policy blocking the Sentry SDK <span>— Vectle</span></a>