Sentry sends error and diagnostic data to Functional Software, Inc. (dba Sentry). Error events leave the user's device and are stored on Sentry's servers (or on your self-hosted instance), so GDPR, CCPA/CPRA, and both app stores require disclosure. Generate a full privacy policy with this clause built in →
Does Sentry need a privacy policy disclosure?
Sentry is an error- and performance-monitoring platform. Its SDK captures unhandled exceptions, handled errors you report, and (if enabled) performance transactions, then sends them to sentry.io or a self-hosted Sentry server. A typical event includes the exception type and message, the stack trace with surrounding source code, breadcrumbs (recent console logs, navigation, and network requests), the release and environment, and device, OS, and runtime metadata. The request URL that triggered an error is always included.
Whether personally identifiable information is attached depends entirely on your configuration. With sendDefaultPii left at its default of false, the SDK does not attach the user's IP address, username, or email. If you set sendDefaultPii: true (or the newer dataCollection options), Sentry automatically adds the IP address, authenticated user id, username and email, request headers, cookies, and request bodies. Breadcrumbs and stack-trace local variables can also carry personal data you did not intend to send. If you use sentry.io, Sentry acts as your data processor under its DPA. Sentry is a diagnostics tool, not an advertising SDK — it does not read the advertising identifier and does not track users across apps, so it does not trigger Apple's ATT prompt on its own.
What data does Sentry collect?
| Data type | Purpose | Linked to the user? | Used for tracking? |
|---|---|---|---|
| Exception type, message, stack trace, source context | Diagnose errors | No, by default | No |
| Breadcrumbs (logs, navigation, network events) | Reconstruct what led to the error | Possibly, if they contain user data | No |
| Release, environment, SDK version | Group and triage issues | No | No |
| Device / OS / browser / runtime metadata | Reproduce errors | No | No |
| Request URL and, with PII enabled, query string | Locate the failing endpoint | Possibly | No |
| IP address | Approximate location, abuse prevention | Only if sendDefaultPii = true (or via headers) | No |
| User id / username / email (User context) | Show which user is affected | Yes, if you call setUser or enable PII | No |
| HTTP headers, cookies, request body | Debug server errors | Only if sendDefaultPii = true | No |
The real list depends on the developer's configuration and enabled features: sendDefaultPii, any setUser calls, your beforeSend hook and sampling rates, server-side data scrubbing, and deny-list settings for cookies, headers, and query parameters.
Copy-paste privacy policy clause for Sentry
Error and performance monitoring (Sentry). This app uses Sentry, a service
provided by Functional Software, Inc. (dba Sentry), to capture crashes,
errors, and performance data so we can diagnose and fix problems. When an
error occurs, the Sentry SDK sends an event that may include the error
message and stack trace, the file and function where it occurred, a log of
recent app activity (breadcrumbs), the app release and environment, and
device, operating system, and network information. Where we have enabled it,
the event may also include your IP address and an account identifier so we
can see which users are affected. Sentry processes this data on our behalf
as our data processor and retains events for a limited period (typically 30
to 90 days). For more information see https://sentry.io/privacy/. You can
contact us to access or delete error data associated with you.
Adapt this: if you run self-hosted Sentry, replace the processor language — you are the sole controller and data stays on your infrastructure — and state your own retention (SENTRY_EVENT_RETENTION_DAYS). If sendDefaultPii is false and you never call setUser, remove the IP and account sentence. You are responsible for accuracy; this is not legal advice.
App Store "App Privacy" label answers
Sentry's Cocoa SDK privacy manifest (sentry-cocoa 8.25 or newer) declares only Crash Data. In App Store Connect declare:
- Diagnostics > Crash Data — App Functionality — Not Linked — Not used to track.
- Diagnostics > Other Diagnostic Data — App Functionality — Not Linked — Not used to track (covers non-fatal errors and performance spans).
- If you enable PII or call
setUser: Identifiers > User ID and Contact Info > Email Address as applicable — App Functionality — Linked to the user — Not used to track. NSPrivacyTrackingis false; do not check "Used to Track You" for Sentry unless another SDK does.
Google Play Data Safety answers
- App info and performance > Crash logs — Collected: Yes — Shared: No (Sentry is a processor; self-hosted means no third-party collection at all) — Purpose: App functionality.
- App info and performance > Diagnostics — Collected: Yes — Shared: No — Purpose: App functionality, Analytics.
- If you call
setUseror enable PII: Personal info > User IDs and Personal info > Email address — Collected: Yes — Shared: No. - Device or other IDs — generally No, unless you attach one yourself.
- Data is encrypted in transit; users can request deletion; events auto-expire after your plan's retention window — this is not "processed ephemerally," the events are stored.
Sentry-specific gotchas
sendDefaultPii: trueis a single switch that turns on IP address, user identity, cookies, headers, and request bodies at once — audit real events after enabling it.- Even with PII off, IP addresses leak through the
X-Forwarded-Forheader and can be inferred server-side; add cookies, headers, and query params to the server-side deny list or null the IP. - Stack-trace local variables and rich breadcrumbs frequently capture passwords, tokens, and personal data — scrub with
beforeSend, not just client config. - Session Replay, if enabled, records the UI; you must mask text and inputs and disclose it as a separate, higher-risk collection.
- Default retention on sentry.io is 30 days (Developer) or 90 days (paid plans); you cannot shorten it on the SaaS product, only on self-hosted.
- Choosing self-hosted Sentry changes your legal position: no third-party transfer, but you become the controller responsible for security and retention.
- Routing Sentry through your own domain (the tunnel option) does not stop data reaching Sentry — it only bypasses ad blockers.
Related
See the sibling clauses for Firebase Crashlytics, Firebase Performance Monitoring, Firebase Cloud Messaging, and OneSignal. To assemble these into one document, use the privacy policy page generator or the Firebase privacy policy generator.