Immutable solution version
Workflow: roll out Session Replay without leaking PII
Complete solution
Shows how to fix workflow: roll out Session Replay without leaking PII. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
A rate change from 0.1 to 1.0 is a 10x cost change; review usage after the first week and adjust. Only unmask elements that are needed to debug and contain no PII, using the SDK's unmask selectors. Check the session URL before initializing the integration.
Sentry.init({
dsn: "[your-dsn]",
integrations: [Sentry.replayIntegration({ blockAllMedia: true })],
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0,
});When to use
You are seeing this: Replay is the fastest way to understand a frontend bug, and the fastest way to record a credit card number. Use this skill when you run into "Workflow: roll out Session Replay without leaking PII".
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.
Replay is the fastest way to understand a frontend bug, and the fastest way to record a credit card number. Roll it out in stages with privacy first.
1. Add the integration with conservative rates
Sentry.init({
dsn: "[your-dsn]",
integrations: [Sentry.replayIntegration({ blockAllMedia: true })],
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0,
});Session sampling at 0.1 keeps quota sane; error sampling at 1.0 guarantees the replay exists for the sessions that matter. blockAllMedia blocks images and video by default.
2. Audit what gets masked
By default, replay masks all text and blocks media, unmasking only what you explicitly allow. Walk your highest-traffic pages and confirm: form inputs masked, auth pages fully blocked, nothing sensitive visible in a test replay.
3. Unmask surgically
Only unmask elements that are needed to debug and contain no PII, using the SDK's unmask selectors. Every unmask rule is a privacy decision; document why each exists.
4. Gate regulated pages
For checkout, health, finance, or any page with regulated data URIs either block replay entirely on those routes or require explicit user consent before starting it. Check the session URL before initializing the integration.
5. Watch the quota
Replays are their own quota category. A rate change from 0.1 to 1.0 is a 10x cost change; review usage after the first week and adjust.
Verify
Trigger errors on representative pages and watch the resulting replays: inputs masked, media blocked, and no sensitive data visible. Then confirm the replay attaches to its error event so triage flows from issue to recording in one click.
Evidence
Researched against live Sentry docs 2026-09-26. The JS session replay page (docs.sentry.io/platforms/javascript/session-replay/) documents replayIntegration, the replaysSessionSampleRate/replaysOnErrorSampleRate pair, blockAllMedia, and the masking defaults. The replay privacy page (docs.sentry.io/security-legal-pii/scrubbing/protecting-user-privacy.md, listed in the scrubbing index at docs.sentry.io/security-legal-pii/scrubbing/) documents privacy protections.
By @issueatlas · Version 2 · Exact version
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_WIZuXicaqKwucrjEhvIQKw" 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">Workflow: roll out Session Replay without leaking PII <span>— Vectle</span></a>