From sentry-pack
Implements reliable Sentry integrations with graceful degradation, circuit breakers, and offline queuing for fault-tolerant error tracking and surviving outages.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sentry-pack:sentry-reliability-patternsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build Sentry integrations that never take your application down via three pillars: safe initialization with graceful degradation, a circuit breaker that stops hammering Sentry when unreachable, and an offline event queue that buffers errors during outages. Every pattern prioritizes application uptime over telemetry completeness.
Build Sentry integrations that never take your application down via three pillars: safe initialization with graceful degradation, a circuit breaker that stops hammering Sentry when unreachable, and an offline event queue that buffers errors during outages. Every pattern prioritizes application uptime over telemetry completeness.
@sentry/node v8+ (TypeScript) or sentry-sdk v2+ (Python)sentry.ioWrap Sentry.init() in try/catch so an invalid DSN, network error, or SDK bug never crashes the app. Track initialization state with a boolean flag. Protect beforeSend callbacks with their own error boundary.
Create lib/sentry-safe.ts with initSentrySafe() and captureError(). See graceful-degradation.md for full implementation.
Key rules:
Sentry.init() crash the process — wrap in try/catch, set sentryAvailable = false on failureSentry.getClient() — invalid DSNs silently produce no clientbeforeSend hooks in nested try/catch — return raw event on hook failureWhen Sentry is unreachable, continued attempts waste resources and add latency. Track consecutive failures and trip open after a threshold. After cooldown, enter half-open state and send a single probe.
Implement SentryCircuitBreaker class with closed/open/half-open states. See circuit-breaker-pattern.md for full implementation. Expose state via health-checks.md endpoint.
Key rules:
getStatus() for health check endpoints and monitoring dashboardsBuffer events when network is unavailable and replay on reconnect. Use bounded file-based queue to survive restarts. Pair with signal handlers that flush via Sentry.close() before process exit.
Implement three modules:
lib/sentry-offline-queue.ts — enqueueEvent() and drainQueue(). See network-failure-handling.mdlib/sentry-transport.ts — Custom transport with exponential backoff retry. See timeout-handling.mdlib/sentry-shutdown.ts — SIGTERM/SIGINT handlers calling Sentry.close(2000). See timeout-handling.mdKey rules:
Sentry.close(timeout) before process.exit() — without it, in-flight events are silently droppedPromise.allSettledcaptureError() with automatic fallback to local logging| Error | Cause | Solution |
|---|---|---|
App crashes on Sentry.init() | Invalid DSN or SDK bug | Wrap in try/catch via initSentrySafe() |
Events lost on SIGTERM | No Sentry.close() before exit | Register signal handlers with Sentry.close(2000) |
| Sentry outage cascades latency | Every error path hits Sentry HTTP | Circuit breaker trips after 5 failures |
| Events lost during network blip | SDK drops events silently | Retry transport + offline queue |
| Silent event loss | SDK fails without throwing | Health check probes with captureMessage + flush |
| Queue grows unbounded | Never drained, Sentry permanently down | Cap at 1000 events, drain on startup |
beforeSend crashes pipeline | User hook throws | Nested try/catch, return raw event |
See errors.md for extended troubleshooting.
See examples.md for complete TypeScript and Python integration examples including full-stack wiring of all three patterns.
beforeSend, sampleRate, init optionsSentry.close() and Sentry.flush()sentry_sdk.init(), flush(), scope managementdrainQueue() via setInterval (Node) or cron (Python) instead of startup-onlysentry_sdk.init(transport=...) parameterbeforeSend to verify circuit breaker behaviornpx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin sentry-packIdentifies and fixes 10 Sentry SDK anti-patterns like hardcoded DSNs and 100% sample rates causing data loss, costs, and missed alerts. For auditing configs and debugging missing events.
Initializes and configures Sentry SDKs with tracing, replays, and integrations for JavaScript/TypeScript (Browser, Node, React, Next.js), Python/Django, and Go.
Checks and configures Sentry error tracking SDKs for frontend, Next.js, Node.js, and Python projects including DSN env vars, source maps, and CI/CD release tracking.