1k-sentry-analysis
Analyze and fix production errors from Sentry crash reports (AppHang, ANR, crashes, stacktraces).
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Sentry Error Analysis & Fixes
Complete workflow for analyzing and fixing production errors from Sentry crash reports.
Workflow Overview
1. Obtain Sentry JSON log
↓
2. Analyze error
↓
3. Identify root cause
↓
4. Generate bug analysis log
↓
🚨 WAIT FOR USER CONFIRMATION 🚨
↓
5. Implement fix (only after approval)
↓
6. Test & verify
↓
7. Create PR
Critical Requirements
MUST follow these rules:
- ✅ Always create a bug analysis log in
node_modules/.cache/bugs/before implementing fixes - 🚨 MUST wait for user confirmation before starting any code changes
- ✅ Bug analysis must be complete with all sections filled
- ✅ Use evidence-based methodology (环环相扣,逐步递进)
Quick Reference
Common Error Types
| Type | Description | Common Causes |
|---|---|---|
| AppHang | iOS app frozen >5s | Too many concurrent requests, main thread blocking |
| ANR | Android Not Responding | Heavy operations on main thread, deadlocks |
| Crash | App terminated | Null pointer, memory issues, unhandled exceptions |
| Exception | Handled error | Network failures, validation errors, state issues |
Analysis Methodology
Use 6 types of proof to establish causation:
- Stack Trace Evidence - Error location in code
- Breadcrumbs Evidence - User actions leading to error
- Code Logic Evidence - Why the code causes the issue
- Timing Evidence - When and how often it occurs
- Device/Platform Evidence - Affected platforms/devices
- Fix Verification - Testing confirms fix works
Common Fix Patterns
// Pattern 1: Concurrent request control
async function executeBatched<T>(
tasks: Array<() => Promise<T>>,
concurrency = 3,
): Promise<Array<PromiseSettledResult<T>>> {
const results: Array<PromiseSettledResult<T>> = [];
for (let i = 0; i < tasks.length; i += concurrency) {
const batch = tasks.slice(i, i + concurrency);
const batchResults = await Promise.allSettled(
batch.map((task) => task()),
);
results.push(...batchResults);
}
return results;
}
// Pattern 2: Main thread offloading (React Native)
import { InteractionManager } from 'react-native';
InteractionManager.runAfterInteractions(() => {
// Heavy operation here
});
// Pattern 3: Error boundary
<ErrorBoundary fallback={<ErrorFallback />}>
<Component />
</ErrorBoundary>
Detailed Guide
For comprehensive Sentry error analysis workflow, see fix-sentry-errors.md.
Topics covered:
- Obtaining Sentry JSON logs
- Python-based quick analysis
- Bug analysis log template
- 6 types of proof methodology
- Root cause identification
- Common fix patterns (AppHang, ANR, Crashes)
- Real-world case studies
- Testing and verification
- PR creation workflow
Key Files
| Purpose | Location |
|---|---|
| Bug analysis logs | node_modules/.cache/bugs/ |
| Sentry config | packages/shared/src/modules/sentry/ |
| Error boundaries | packages/kit/src/components/ErrorBoundary/ |
When to Use This Skill
- Analyzing iOS AppHang errors (5+ second freezes)
- Fixing Android ANR (Application Not Responding)
- Investigating crash reports with stack traces
- Understanding user actions before crashes (breadcrumbs)
- Creating evidence-based bug analysis reports
- Implementing fixes for production errors
Related Skills
-
/1k-performance- Performance optimization patterns -
/1k-error-handling- Error handling best practices -
/1k-sentry- Sentry configuration and filtering -
/1k-code-quality- Lint fixes and code quality
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-03-11
- Index updated
- 2026-03-11
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!