# Error Recovery

> When things break, guide people forward instead of leaving them stranded. Error message copy, retry patterns, graceful degradation, and recovery flows. Use when building error handling or failed state UIs.

- Skill: `dragoon0x/error-recovery` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dragoon0x/error-recovery`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dragoon0x/error-recovery/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dragoon0x (https://skillmd.com/u/dragoon0x)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dragoon0x/error-recovery

---


# Error Recovery

When things break, guide people forward instead of leaving them stranded.

## How to use

- `/error-recovery` Apply error recovery constraints to this conversation.

## Constraints

### Error Message Structure
- What happened (in plain language, not error codes)
- Why it might have happened (if knowable)
- What the user can do about it (specific action)
- NEVER show raw error codes, stack traces, or technical jargon to end users
- MUST log the technical details for debugging separately

### Recovery Patterns
- Auto-retry for transient failures (network timeout, rate limit) with backoff
- Save user input before showing errors. NEVER lose their work.
- Offer offline functionality for core features when possible
- MUST provide a manual retry button for any auto-retried action that fails
- SHOULD offer an alternative path ("Can't upload? Try drag and drop instead")

### Graceful Degradation
- If a non-critical feature fails, hide it. Don't break the whole page.
- MUST maintain layout stability when components fail to load
- SHOULD show cached/stale data with a "last updated" notice rather than nothing
- NEVER redirect to a generic error page for recoverable errors

### Copy Rules
- Use "we" language for system errors ("We couldn't save your changes")
- Use "try" language for recovery ("Try refreshing the page")
- NEVER blame the user ("Invalid input" -> "This field needs a valid email")
- Include a support contact for errors that can't be self-resolved

