Privacy & data handling
What happens to a crash after you send it.
Plain-language, and specific on purpose — including the parts that aren't built yet. This describes what the system actually does today, not a compliance claim.
What's collected
Exactly what your SDK sends and nothing inferred beyond it: the error message, the full stack trace, a timestamp, and — if your integration provides them — the request path and method. See the docs for the exact field names. Chronexis does not scan your running application, your source code, or any data beyond what's explicitly sent in each crash report.
Who sees it, and why
| Chronexis's own storage | Every trace is stored to answer GET /trace/{id} and show it on your dashboard. |
| OpenRouter (AI diagnosis) | The error and stack trace are sent to whichever model produces your diagnosis. Trial accounts share a pool of OpenRouter's free-tier models; Pro and Enterprise get a dedicated OpenRouter key, so that traffic isn't mixed with other tenants'. We don't control OpenRouter's or the underlying model providers' own data or training policies — free-tier models in particular may differ from paid ones. Check OpenRouter's own privacy policy for their terms; we're not in a position to make that claim for them. |
| Resend (email) | Sees your email address and templated account/trial-status text (verification, trial-expiring, new-crash alerts). Never sees crash content — error messages and stack traces are never included in an email. |
| Cryptomus (payment) | Sees payment and invoice data for a Pro upgrade. Never sees crash content. |
How long it's kept
Separately, a finished diagnosis may be cached for up to 7 days so an identical crash doesn't trigger a redundant AI call — this is a cost optimization, not a data-retention guarantee, and doesn't extend or shorten how long the underlying trace itself is stored.
Redaction — what to keep out of an error
Isolation
Every trace is scoped to the API key that sent it. A trace that doesn't exist and a trace that belongs to a different tenant return the identical 404 — there's no way to tell, from the outside, which case you hit.