11 KiB
Error Classification Taxonomy
Version: 2.0 Source: Bootstrap-003 Error Recovery Methodology Last Updated: 2025-10-18 Coverage: 95.4% of observed errors Categories: 13 complete categories
This taxonomy classifies errors systematically for effective recovery and prevention.
Overview
This taxonomy is:
- MECE (Mutually Exclusive, Collectively Exhaustive): 95.4% coverage
- Actionable: Each category has clear recovery paths
- Observable: Each category has detectable symptoms
- Universal: 85-90% applicable to other software projects
Automation Coverage: 23.7% of errors preventable with 3 automated tools
13 Error Categories
Category 1: Build/Compilation Errors (15.0%)
Definition: Syntax errors, type mismatches, import issues preventing compilation
Examples:
cmd/root.go:4:2: "fmt" imported and not usedundefined: someFunctioncannot use x (type int) as type string
Common Causes:
- Unused imports after refactoring
- Type mismatches from incomplete changes
- Missing function definitions
- Syntax errors
Detection Pattern: *.go:[line]:[col]: [error message]
Prevention:
- Pre-commit linting (gofmt, golangci-lint)
- IDE real-time syntax checking
- Incremental compilation
Recovery: Fix syntax/type issue, retry go build
Automation Potential: Medium
Category 2: Test Failures (11.2%)
Definition: Unit or integration test assertions that fail during execution
Examples:
--- FAIL: TestLoadFixture (0.00s)Fixture content should contain 'sequence' fieldFAIL github.com/project/package 0.003s
Common Causes:
- Test fixture data mismatch
- Assertion failures from code changes
- Missing test data files
- Incorrect expected values
Detection Pattern: --- FAIL:, FAIL\t, assertion messages
Prevention:
- Run tests before commit
- Update test fixtures with code changes
- Test-driven development (TDD)
Recovery: Update test expectations or fix code
Automation Potential: Low (requires understanding test intent)
Category 3: File Not Found (18.7%) ⚠️ AUTOMATABLE
Definition: Attempts to access non-existent files or directories
Examples:
File does not exist.wc: /path/to/file: No such file or directoryFile does not exist. Did you mean file.md?
Common Causes:
- Typos in file paths
- Files moved or deleted
- Incorrect working directory
- Case sensitivity issues
Detection Pattern: File does not exist, No such file or directory
Prevention:
- Automation:
validate-path.sh✅ (prevents 65.2% of category 3 errors) - Validate paths before file operations
- Use autocomplete for paths
- Check file existence first
Recovery: Correct file path, create missing file, or change directory
Automation Potential: HIGH ✅
Category 4: File Size Exceeded (6.3%) ⚠️ AUTOMATABLE
Definition: Attempted to read files exceeding token limit
Examples:
File content (46892 tokens) exceeds maximum allowed tokens (25000)File too large to read in single operation
Common Causes:
- Reading large generated files without pagination
- Reading entire JSON files
- Reading log files without limiting lines
Detection Pattern: exceeds maximum allowed tokens, File too large
Prevention:
- Automation:
check-file-size.sh✅ (prevents 100% of category 4 errors) - Pre-check file size before reading
- Use offset/limit parameters
- Use grep/head/tail instead of full Read
Recovery: Use Read with offset/limit, or use grep
Automation Potential: FULL ✅
Category 5: Write Before Read (5.2%) ⚠️ AUTOMATABLE
Definition: Attempted to Write/Edit a file without reading it first
Examples:
File has not been read yet. Read it first before writing to it.
Common Causes:
- Forgetting to read file before edit
- Reading wrong file, editing intended file
- Session context lost
- Workflow error
Detection Pattern: File has not been read yet
Prevention:
- Automation:
check-read-before-write.sh✅ (prevents 100% of category 5 errors) - Always Read before Write/Edit
- Use Edit instead of Write for existing files
- Check read history
Recovery: Read the file, then retry Write/Edit
Automation Potential: FULL ✅
Category 6: Command Not Found (3.7%)
Definition: Bash commands that don't exist or aren't in PATH
Examples:
/bin/bash: line 1: meta-cc: command not foundcommand not found: gofmt
Common Causes:
- Binary not built yet
- Binary not in PATH
- Typo in command name
- Required tool not installed
Detection Pattern: command not found
Prevention:
- Build before running commands
- Verify tool installation
- Use absolute paths for project binaries
Recovery: Build binary, install tool, or correct command
Automation Potential: Medium
Category 7: JSON Parsing Errors (6.0%)
Definition: Malformed JSON or schema mismatches
Examples:
json: cannot unmarshal string into Go struct fieldinvalid character '}' looking for beginning of value
Common Causes:
- Schema changes without updating code
- Malformed JSON in test fixtures
- Type mismatches
- Missing or extra commas/braces
Detection Pattern: json:, unmarshal, invalid character
Prevention:
- Validate JSON with jq before use
- Use JSON schema validation
- Test JSON fixtures with actual code
Recovery: Fix JSON structure or update schema
Automation Potential: Medium
Category 8: Request Interruption (2.2%)
Definition: User manually interrupted tool execution
Examples:
[Request interrupted by user for tool use]Command aborted before execution
Common Causes:
- User realized mistake mid-execution
- User wants to change approach
- Long-running command needs stopping
Detection Pattern: interrupted by user, aborted before execution
Prevention: Not applicable (user decision)
Recovery: Not needed (intentional)
Automation Potential: N/A
Category 9: MCP Server Errors (17.1%)
Definition: Errors from Model Context Protocol tool integrations
Subcategories:
- 9a. Connection Errors (server unavailable)
- 9b. Timeout Errors (query exceeds time limit)
- 9c. Query Errors (invalid parameters)
- 9d. Data Errors (unexpected format)
Examples:
MCP server connection failedQuery timeout after 30sInvalid parameter: status must be 'error' or 'success'
Common Causes:
- MCP server not running
- Network issues
- Query too broad
- Invalid parameters
- Schema changes
Prevention:
- Check MCP server status before queries
- Use pagination for large queries
- Validate query parameters
- Handle connection errors gracefully
Recovery: Restart MCP server, optimize query, or fix parameters
Automation Potential: Medium
Category 10: Permission Denied (0.7%)
Definition: Insufficient permissions to access file or execute command
Examples:
Permission denied: /path/to/fileOperation not permitted
Common Causes:
- File permissions too restrictive
- Directory not writable
- User doesn't own file
Detection Pattern: Permission denied, Operation not permitted
Prevention:
- Verify permissions before operations
- Use appropriate user context
- Avoid modifying system files
Recovery: Change permissions (chmod/chown)
Automation Potential: Low
Category 11: Empty Command String (1.1%)
Definition: Bash tool invoked with empty or whitespace-only command
Examples:
/bin/bash: line 1: : command not found
Common Causes:
- Variable expansion to empty string
- Conditional command construction error
- Copy-paste error
Detection Pattern: /bin/bash: line 1: : command not found
Prevention:
- Validate command strings are non-empty
- Check variable values
- Use bash -x to debug
Recovery: Provide valid command string
Automation Potential: High
Category 12: Go Module Already Exists (0.4%)
Definition: Attempted go mod init when go.mod already exists
Examples:
go: /path/to/go.mod already exists
Common Causes:
- Forgot to check for existing go.mod
- Re-running initialization script
Detection Pattern: go.mod already exists
Prevention:
- Check for go.mod existence before init
- Idempotent scripts
Recovery: No action needed
Automation Potential: Full
Category 13: String Not Found (Edit Errors) (3.2%)
Definition: Edit tool attempts to replace non-existent string
Examples:
String to replace not found in file.String: {old content} not found
Common Causes:
- File changed since last inspection (stale old_string)
- Whitespace differences (tabs vs spaces)
- Line ending differences (LF vs CRLF)
- Copy-paste errors
Detection Pattern: String to replace not found in file
Prevention:
- Re-read file immediately before Edit
- Use exact string copies
- Include sufficient context in old_string
- Verify file hasn't changed
Recovery:
- Re-read file to get current content
- Locate target section
- Copy exact current string
- Retry Edit with correct old_string
Automation Potential: High
Uncategorized Errors (4.6%)
Remaining: 61 errors
Breakdown:
- Low-frequency unique errors: ~35 errors (2.6%)
- Rare edge cases: ~15 errors (1.1%)
- Other tool-specific errors: ~11 errors (0.8%)
These occur too infrequently (<0.5% each) to warrant dedicated categories.
Automation Summary
Automated Prevention Available:
| Category | Errors | Tool | Coverage |
|---|---|---|---|
| File Not Found | 250 (18.7%) | validate-path.sh |
65.2% |
| File Size Exceeded | 84 (6.3%) | check-file-size.sh |
100% |
| Write Before Read | 70 (5.2%) | check-read-before-write.sh |
100% |
| Total Automated | 317 (23.7%) | 3 tools | Weighted avg |
Automation Speedup: 20.9x for automated categories
Transferability
Universal Categories (90-100% transferable):
- Build/Compilation Errors
- Test Failures
- File Not Found
- File Size Limits
- Permission Denied
- Empty Command
Portable Categories (70-90% transferable):
- Command Not Found
- JSON Parsing
- String Not Found
Context-Specific Categories (40-70% transferable):
- Write Before Read (Claude Code specific)
- Request Interruption (AI assistant specific)
- MCP Server Errors (MCP-enabled systems)
- Go Module Exists (Go-specific)
Overall Transferability: ~85-90%
Usage
For Developers
- Error occurs → Match to category using detection pattern
- Review common causes → Identify root cause
- Apply prevention → Check if automated tool available
- Execute recovery → Follow category-specific steps
For Tool Builders
- High automation potential → Prioritize Categories 3, 4, 5, 11, 12
- Medium automation → Consider Categories 6, 7, 9
- Low automation → Manual handling for Categories 2, 8, 10
For Project Adaptation
- Start with universal categories (1-7, 10, 11, 13)
- Adapt context-specific (8, 9, 12)
- Monitor uncategorized → Create new categories if patterns emerge
Source: Bootstrap-003 Error Recovery Methodology Framework: BAIME (Bootstrapped AI Methodology Engineering) Status: Production-ready, validated with 1336 errors Coverage: 95.4% (converged)