Every error Springtale surfaces has a stable ID. The CLI's
springtale fix <id> command prints causes, suggestions, and — for a
handful of high-leverage errors — runs an automated fix.
| Prefix | Scope | Examples |
|---|---|---|
E001–E009 |
Operational (runtime, storage, daemon) | E001 store, E003 connector, E009 init |
COOP-1001…COOP-9003 |
Cooperation layer (formations, tiers, rally, recovery) | COOP-2003 not viable, COOP-8001 rally exhausted |
Everything routes through the same command:
springtale fix E001
springtale fix COOP-2003| ID | Title | Auto-fix? |
|---|---|---|
| E001 | Store error — database access failure | ✓ (permission + init) |
| E002 | Rule error — invalid rule definition | — |
| E003 | Connector error — execution failure | — |
| E004 | Formation error — multi-agent group issue | — |
| E005 | Not found — missing resource | — |
| E006 | Validation error — invalid input | — |
| E007 | Serialization — JSON/TOML parsing failure | — |
| E008 | AI error — adapter failure | — |
| E009 | Initialization — startup failure | ✓ (diagnostics) |
IDs are grouped by module:
COOP-1001tick bus channel closedCOOP-1002tick sequence wrappedCOOP-1003subscriber lagged
COOP-2001agent not foundCOOP-2002empty formationCOOP-2003formation not viableCOOP-2004missing required capabilityCOOP-2005formation context not initialized
COOP-3001momentum insufficient (need Hot, have Cold)COOP-3002capability locked at current tier
COOP-4001stale neighborCOOP-4002gossip bridge disconnected
COOP-5001no override tokens remainingCOOP-5002consensus deadline expiredCOOP-5003vote not found
COOP-6001commit barrier failedCOOP-6002prepare timed outCOOP-6003participant droppedCOOP-6004agent not a participant in this barrierCOOP-6005execution phase failed
COOP-7001cross-agent conflict detected (ResourceConflict / ActionNegation)
COOP-8001rally exhausted (no tokens remaining)COOP-8002cascade threshold exceededCOOP-8003rally supervisor panicked
COOP-9001no recovery pathCOOP-9002recovery cost exceeds budgetCOOP-9003terminal failure (max quick-fixes reached)
Each guide reports four things:
- Title — one-line summary of what the error class means.
- Causes — specific things that typically produce this error.
- Suggestions — what you can do. Cheap first, expensive last.
- Auto-fix — if present,
springtale fix <id>will run it and print success/no-change.
Example:
$ springtale fix COOP-8001
─── COOP-8001: Rally — no tokens remaining ─────────────────
Causes:
· The formation has exhausted its rally budget (Monster Hunter
cart threshold).
Suggestions:
1. The formation will escalate to orchestrator intervention.
2. Check `springtale logs` for the cascade reason.
Auto-fix: none for this error.
springtale fix is a triage tool. When it doesn't have anything
useful to say, two fallbacks:
springtale doctorruns full diagnostics (store integrity, connector reachability, vault key presence, daemon liveness).springtale logsstreams the audit trail. Every action the daemon takes is logged with the connector, rule, and duration.
Both are read-only and safe to run on a live bot.
If you hit an error with no corresponding guide, file an issue at
https://github.com/anthropics/springtale/issues with:
- The exact error ID.
- The last 200 lines of
springtale logs. - What you were doing when it fired.
We add new guides to crates/springtale-runtime/src/operations/error_fixes.rs
on request. Every new error variant is expected to ship with a
FixGuide entry — the tests enforce it.