SDK setup overview
Errora is Sentry-wire-compatible. You install the official Sentry SDK for your platform, set the DSN to your Errora project, and everything else — errors, tracing, logs, replays, profiles, metrics, cron check-ins, user feedback — flows over the same connection.
There is no Errora SDK. If your platform has a Sentry SDK (the full list), it works here.
The DSN
https://<public_key>@<your-errora-host>/<project_id>
Find it on the project page (Projects → your project), or over the API at
GET /api/v1/organizations/{org_id}/projects/{project_id}/keys.
Keep the DSN in an environment variable, never hardcoded:
SENTRY_DSN=https://a1b2c3…@errora.example.com/6f1e…
Options that matter
| Option | Why you want it |
|---|---|
dsn | Where events go. Empty DSN = SDK disabled, which is how you turn Errora off in tests. |
environment | production / staging / … — filterable everywhere, and cron monitors keep per-environment state. |
release | myapp@1.4.2. Required for source maps and useful for regression hunting. |
traces_sample_rate | Turns on performance/tracing. 1.0 in development, lower in production. |
profiles_sample_rate | Turns on profiling (fraction of sampled transactions). |
replaysSessionSampleRate | Browser only — turns on session replay. |
send_default_pii | Attaches user/IP/request data. Off by default; enable deliberately. |
sample_rate | Client-side error sampling (separate from the project's server-side sample rate). |
attach_stacktrace | Attaches stack traces to plain capture_message calls too. |
before_send | Your last chance to scrub secrets from a payload before it leaves the process. |
What each product needs
| Product | Turn on |
|---|---|
| Errors | Nothing — the SDK captures unhandled exceptions once initialized |
| Tracing | traces_sample_rate (or traces_sampler) |
| Logs | The SDK's logging integration (enable_logs / _experiments: { enableLogs: true }) |
| Session replay | replayIntegration() + sample rates (browser) |
| Profiling | profiles_sample_rate or continuous profiling |
| Metrics | The SDK's metrics API, or send statsd lines |
| Cron monitoring | The SDK's monitor decorator/captureCheckIn, or plain curl |
| User feedback | feedbackIntegration(), showReportDialog(), or the report API |
| AI monitoring | The SDK's AI-agents / MCP integration (emits gen_ai.* spans) |
| Source maps | Upload artifacts per release from CI |
How the SDK talks to Errora
Modern SDKs POST envelopes to:
POST https://<host>/api/<project_id>/envelope/
Older or minimal clients use the legacy error endpoint:
POST https://<host>/api/<project_id>/store/
Authentication is the DSN public key, sent in the X-Sentry-Auth header, as
?sentry_key= (browser SDKs), or in the envelope header's dsn field (tunnelled
envelopes). Gzip-compressed bodies are accepted. Errora answers 202 Accepted as soon as
the payload is queued.
See Ingestion API for the full endpoint reference, including the three non-SDK endpoints (cron check-ins, CSP reports, the crash-report modal).
Verifying the connection
- Send a deliberate error (
sentry_sdk.capture_exception(Exception("smoke test"))). - Watch for
202in your app's egress logs (or turn on the SDK'sdebug=True). - Look in Issues in the UI.
If the SDK reports 401, the public key is wrong or the key was deactivated. 404 means
the project id in the DSN path is wrong. 429 means you are being rate limited.