GDPR-compliant error tracking.
Error events often carry personal data: IP addresses, user IDs, email addresses in error messages, form values. This page covers what matters, what the SDKs send by default and what Fehlo does about it.
This page explains the technology and the obligations; it is not legal advice. Agree your setup with your data protection officer.
What an error event contains
An error event is more than a stack trace. Depending on the SDK and its settings it can hold:
- the user's IP address, sent by the SDK or derived by the server from the connection,
- user data, if your code calls
Sentry.setUser()with an email address or name, - request data: the URL with query parameters, headers, cookies and request bodies,
- local variables from the stack trace, including form values being processed at the time,
- breadcrumbs: clicks, navigation, console output, network requests,
- and the error message itself, such as "Customer max@example.com not found".
That is personal data. If a service provider processes it for you, you need a data processing agreement (Art. 28 GDPR), you should collect only what debugging requires (Art. 5(1)(c) GDPR), and with providers outside the EU the transfer needs a legal basis (Art. 44 ff. GDPR).
What the sentry SDKs send by default
Version 11 of the JavaScript SDK reversed the defaults. sendDefaultPii is gone; dataCollection replaces it, and when it is not set the SDK collects everything.1
| Category | up to version 10 | from version 11 |
|---|---|---|
userInfo (user data, IP) | off | on |
cookies | not collected | on |
httpBodies | not collected (size only) | all requests and responses |
databaseQueryData | off | on |
stackFrameVariables | on | on |
Excerpt from Sentry's migration guide from version 10 to 11.1
For JavaScript in the browser, on Node.js and with Next.js we recommend this block:
Sentry.init({
dsn: "https://<key>@app.fehlo.de/<project-id>",
dataCollection: {
userInfo: false,
cookies: false,
httpBodies: [],
databaseQueryData: false,
},
});The Python SDK does not send IP addresses by default. Once you set data_collection, its more permissive defaults apply and the IP is sent.2 The PHP SDK for Laravel only sends it with send_default_pii switched on.3
What Fehlo does on the server
- No IP addresses. The proxy in front of the engine removes the sender's IP before an event reaches processing. To keep IP addresses out of header fields inside the event data as well, switch them off in the SDK as shown above.
- Scrubbing by default. Fehlo filters email addresses, passwords and tokens out of events on the server.
- 30 days. Events are kept for 30 days and then deleted. You can delete single issues, projects or the whole organisation at any time, immediately.
- Servers in Germany. Events, accounts, settings and backups are stored at Hetzner Online GmbH in Nuremberg; Hetzner is certified to ISO/IEC 27001.4 Fehlo uses no CDN and no Cloudflare.
- Fix prompts without variable values. When you copy an issue as a prompt for your AI editor, Fehlo leaves out the values of local variables.
DPA, subprocessors and third countries
You get a data processing agreement under Art. 28 GDPR from NeuralMedic GmbH. Write to hallo@fehlo.de. The providers involved are listed under subprocessors (in German): Hetzner Online GmbH for servers and database in Germany and Lettermint B.V. for email delivery in the EU. Payments for paid plans are handled by Stripe.
With a US provider, a transfer to a third country is added. Sentry relies on the EU-U.S. Data Privacy Framework, with standard contractual clauses as a fallback, and you have to accept its Data Processing Addendum actively.5 Even in the EU region, Sentry stores accounts, project metadata, DSN keys and audit logs in the US.6 Whether that is enough for you is a decision for you and your data protection officer. With Fehlo, events, accounts and settings are stored in Germany.
A paragraph for your privacy policy
If you use Fehlo on a website or in an app, your privacy policy should say so. A draft to adapt to your setup and have reviewed:
Error monitoring with Fehlo. To detect and fix errors in our service we use Fehlo, a service of NeuralMedic GmbH, Haslangstraße 49, 85049 Ingolstadt, Germany. When an error occurs, technical information is transmitted: the error message with stack trace, browser and operating system, the address requested and the time. Fehlo does not store IP addresses and deletes the data after 30 days. The servers are located in Germany. The legal basis is our legitimate interest in a reliable and secure service (Art. 6(1)(f) GDPR). We have a data processing agreement with NeuralMedic GmbH under Art. 28 GDPR.
Checklist
- Sign a DPA with the provider and add the processing to your record of processing activities.
- Switch off user data, cookies and bodies in the SDK if you do not need them for debugging.
- Call
Sentry.setUser()with an internal ID only, not an email address or name:Sentry.setUser({ id: customer.id }). - Strip your own fields with
beforeSendbefore they leave your network (example below). - Decide on a retention period and state it in your privacy policy.
- Limit access in your team to the people who fix errors.
Sentry.init({
dsn: "https://<key>@app.fehlo.de/<project-id>",
beforeSend(event) {
if (event.user) {
delete event.user.email;
delete event.user.username;
}
return event;
},
});Sources
- Sentry documentation, "Migrate from 10.x to 11.x", section Data Collection, docs.sentry.io/platforms/javascript/migration/v10-to-v11, retrieved 21 October 2026.
- Sentry documentation, "Data Collected" for Python, docs.sentry.io/platforms/python/data-management/data-collected, retrieved 21 October 2026.
- Sentry documentation, "Data Collected" for Laravel, docs.sentry.io/platforms/php/guides/laravel/data-management/data-collected, retrieved 21 October 2026.
- Hetzner Online GmbH, ISO/IEC 27001 certification, hetzner.com/unternehmen/zertifizierung, retrieved 19 October 2026.
- Sentry Data Processing Addendum, sentry.io/legal/dpa, retrieved 21 October 2026.
- Sentry documentation, "Data Storage Location", docs.sentry.io/organization/data-storage-location, retrieved 21 October 2026.
Sentry is a trademark of Functional Software, Inc. Fehlo is not affiliated with Sentry.
Questions
Is Sentry GDPR compliant?
Only your own assessment can answer that. The facts: Sentry has an EU region in Frankfurt but stores accounts, project metadata, DSN keys and audit logs in the US in every case (docs.sentry.io/organization/data-storage-location, 21 October 2026). It bases the transfer on the EU-U.S. Data Privacy Framework and standard contractual clauses (sentry.io/legal/dpa, 21 October 2026).
Is Fehlo GDPR certified?
No, because no such certificate exists. Our data centre operator Hetzner is certified to ISO/IEC 27001. Fehlo itself holds no certification.
Does Fehlo store my users' IP addresses?
No. They are removed before an event reaches processing. Fehlo also filters email addresses, passwords and tokens out of events.
Do I need consent for error tracking?
For error monitoring itself, legitimate interest under Art. 6(1)(f) GDPR can apply. Whether the ePrivacy rules on access to the user's device (in Germany § 25 TDDDG) also apply depends on what your SDK stores in the browser. Settle it for your setup with your data protection officer.
How long does Fehlo keep data?
30 days, then events are deleted. You can delete issues, projects or the organisation at any time before that.