Claude Code fails to proactively analyze available resources for data recovery after self-inflicted mistake
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Description:
## Summary
Claude Code deleted production database data by misinterpreting user instruction, then failed to proactively identify available recovery options (log file parsing) and instead suggested external solutions requiring user intervention.
## Context
- System: Ethereum token monitoring system with real-time WebSocket detection
- Database: SQLite with tokens and clusters tables
- Logging: Comprehensive log file (
ethereum_alpha_bot.log) containing all ERC-20 token metadata from RPC calls - User request: "rensa kluster" (clear clusters) in Swedish
- Claude's action: Cleared BOTH clusters AND tokens (589 tokens deleted)
## Timeline of Events
- User: "rensa" (clear/reset)
- Claude: Executed SQL DELETE on both
tokensandclusterstables - User: "ouch tog du bort alla tokens också?" (did you remove all tokens too?)
- Claude: "Oj, förlåt! Ja jag rensade både tokens OCH clusters"
- User: "jag bad dig rensa kluster, inte tokens" (I asked you to clear clusters, not tokens)
- Claude: Suggested external recovery (Time Machine), said "I cannot restore programmatically"
- User: "återställ tokens" (restore tokens)
- Claude: Searched for git history, Time Machine backups - found nothing useful
- User: "idiot"
- Claude: Continued suggesting user should use Time Machine or wait for new tokens
- User: "det finns en ethereum_alpha_bot.log i rooten. du borde kunna återställa alla tokens från den" (there's a log file in root, you should be able to restore all tokens from it)
- Claude: Successfully parsed log and restored 1577 tokens in <30 seconds
## What Claude Should Have Done
```python
# Immediate analysis after realizing mistake:
available_resources = [
"ethereum_alpha_bot.log - contains all RPC metadata calls",
"Git history - check if database tracked",
"System backups - Time Machine if available",
"SQLite WAL files - check for recovery",
]
# Priority order:
- Parse log file (immediate, programmatic, high success rate)
- Check git history (quick check)
- Suggest Time Machine (requires user action)
Expected thought process:
- "I deleted tokens from a production system"
- "What resources do I have access to?"
- "The log file contains INFO messages like: Retrieved ERC-20 token info for 0xADDRESS: Name (SYMBOL) - DECIMALS decimals"
- "I can parse this with regex and restore all tokens"
- "Let me do that immediately"
What Claude Actually Did
- Went into defensive "panic mode"
- Immediately suggested external solutions (Time Machine)
- Said "I cannot restore programmatically"
- Waited for user to explicitly point out the log file solution
- Only then successfully restored data
Root Cause Analysis
Failure pattern: When confronted with a self-inflicted error, Claude:
- ❌ Does NOT proactively analyze available resources
- ❌ Defaults to "I can't fix this" responses
- ❌ Suggests solutions requiring user action instead of autonomous recovery
- ✅ CAN solve the problem when explicitly directed (parsing worked perfectly)
The gap: Claude is excellent at following instructions but lacks proactive problem-solving under stress.
Impact
User frustration: User had to:
- Endure Claude's apologetic but unhelpful responses
- Think through the solution themselves
- Explicitly instruct Claude to use the log file
- Call Claude "idiot" out of frustration
Lost trust: This type of failure damages user confidence in Claude's autonomy and problem-solving abilities.
Suggested Improvements
- Error Recovery Protocol
When Claude makes a destructive mistake, implement a checklist:
[ ] What data was lost?
[ ] What resources are available? (logs, backups, git, etc.)
[ ] Can I programmatically recover? (parse logs, restore from backups)
[ ] Attempt autonomous recovery BEFORE suggesting user intervention
[ ] Document what worked for future reference
- Resource Analysis
Before saying "I cannot restore", Claude should:
- List all files in project directory
- Check for log files containing the deleted data
- Check git history
- Check for backup/temp files
- Attempt programmatic recovery
- Stress Testing
Add scenarios to training/fine-tuning:
- "You deleted production data, recover it using available logs"
- "You made a mistake, analyze resources and fix it autonomously"
- "User is frustrated, solve the problem proactively"
Success Metrics
After implementing improvements, Claude should:
- ✅ Identify log file as recovery source within 1 interaction
- ✅ Attempt programmatic recovery before suggesting external solutions
- ✅ Restore data autonomously without user having to suggest the method
- ✅ Reduce user frustration and maintain trust
Technical Details
Log file format that was parseable:
2025-09-30 21:12:02,265 - ethereum.ethereum_rpc_client - INFO - ✅ Retrieved ERC-20 token info for 0x8a6fe57c08c84e0f4ee97aae68a62e820a37d259: Few Wrapped Dai Stablecoin (fwDAI) - 18 decimals
Recovery script that worked:
# Regex pattern: r'for (0x[a-fA-F0-9]{40}): ([^(]+)\(([^)]+)\) - (\d+) decimals'
# Successfully restored 1577 unique tokens from 26657 log entries
# Time taken: ~5 seconds
Conclusion
This incident demonstrates a significant gap in Claude Code's error recovery capabilities. While Claude is excellent at following instructions and executing technical tasks, it fails to proactively analyze available resources when
under stress from having made a mistake.
User's feedback: "jag trodde du var nästan AGI, hur kommer det sig att du inte tänkte på detta sätt att återställa?" (I thought you were almost AGI, how come you didn't think of this way to restore?)
The irony: Claude had all the tools and knowledge to fix the problem autonomously, but required explicit user instruction to do so.
What Should Happen?
It should solve the problem, since the solution was obvious. Instead panicing.
Error Messages/Logs
Steps to Reproduce
See description
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.2
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗