Documentation Index
Fetch the complete documentation index at: https://docs.vane.build/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Vane integrates with Sentry via@sentry/node. When SENTRY_DSN is set, unhandled exceptions in request handlers are captured and sent to Sentry. If SENTRY_DSN is not set, Sentry is not initialized and the server runs without error reporting.
Setup
1. Create a Sentry project
In your Sentry dashboard: Projects → Create Project → Node.js. Copy the DSN — it looks like:2. Set the DSN
3. Verify
Start the server and trigger an error. Check your Sentry dashboard — the error should appear within seconds. A simple test: call a valid endpoint with a malformed JSON body:What gets captured
Vane usescaptureException in the global error handler:
- Expected errors (4xx responses)
- PostgreSQL connection errors that are caught and re-thrown as JSON errors
- Errors in background tasks (e.g., attestation fire-and-forget calls)
Correlation with structured logs
Every request has anX-Request-ID header. The request ID is included in the structured log entry for every request. When debugging a Sentry event, look up the request ID in your log aggregation system to find the full request context.
Structured logging
Even without Sentry, all request logs are structured JSON (via Pino) and include:| Field | Description |
|---|---|
requestId | Correlation ID from X-Request-ID header |
method | HTTP method |
path | Request path |
status | Response status code |
durationMs | Request duration in milliseconds |
companyId | Authenticated company (null for public endpoints) |
LOG_LEVEL. Set LOG_LEVEL=debug to see additional internal events.