Overview
Loom’s crash tracking system captures errors and crashes from TypeScript (browser + Node.js) and Rust applications, groups them into issues via fingerprinting, tracks regressions across releases, and provides source context through uploaded source maps.Crash tracking integrates with analytics for person identity and feature flags to capture active flags at crash time.
Key Features
- Multi-platform crash capture: JavaScript, Node.js, Rust
- Issue grouping via fingerprinting to deduplicate similar crashes
- Issue lifecycle with unresolved/resolved/ignored/regressed states
- Regression detection when resolved issues reappear
- Source map uploads for TypeScript with source context
- Rust backtrace symbolication with demangling
Core Concepts
Crash Event
A single crash occurrence:Issue
An aggregated group of similar crashes:| Status | Description |
|---|---|
Unresolved | New or ongoing issue |
Resolved | Fixed by developer |
Ignored | Intentionally ignored |
Regressed | Resolved issue reappeared |
Platform Types
Rust SDK
Install the SDK:Setup with Integrations
Capturing Errors
TypeScript SDK
Install the SDK:Browser Setup
Capturing Exceptions
React Error Boundary
Source Maps
Upload source maps to get readable stack traces for minified JavaScript:Build Tool Integration
Vite plugin example:Issue Fingerprinting
Crashes are grouped by fingerprint (SHA256 hash): Default algorithm:- Exception type (most significant)
- Top 5 in-app stack frames (function + module)
- If no in-app frames, use all frames
Custom Fingerprinting
Override fingerprinting rules via API:Issue Lifecycle
Regression Detection
If new crash arrives for resolved issue:
- Status changes to Regressed
times_regressedincrements- Real-time alert sent via SSE
API Endpoints
Capture Crashes
Ingest single crash event (requires Capture API key)Request:
Manage Issues
List issues with filtersQuery Parameters:
status- Filter by status (unresolved, resolved, etc.)sort- Sort by (last_seen, first_seen, event_count)query- Search in title/message
Get issue detail with recent eventsResponse:
Mark issue as resolvedRequest:
Upload Source Maps
Upload source maps (multipart/form-data)Form fields:
release- Release versiondist- Distribution variant (optional)- Files:
.mapand.jsfiles
Real-time Updates (SSE)
Subscribe to crash events:crash.new- New crash eventissue.new- New issue createdissue.regressed- Resolved issue regressedissue.resolved- Issue resolvedissue.assigned- Issue assigned to user
Stack Frames
Stack frames include source context after symbolication:Best Practices
Upload Source Maps
Always upload source maps for production builds to get readable stack traces
Set Release Version
Use semantic versioning or commit SHA for release tracking
Add Breadcrumbs
Log user actions before crashes to aid debugging
Filter Noise
Use
beforeSend hook to filter known browser quirks (ResizeObserver, etc.)See Also
Analytics
Link crashes to person profiles
Sessions
Track crash-free session rates