| name | lamina-error-handling |
| description | Error and recovery UX in scenarios — slips vs mistakes, root cause in design not actors. Use when mapping failure scenarios in run.json. |
| metadata | {"lamina":{"id":"error-handling","problems":["error message design","slip vs mistake diagnosis","recovery UX"],"related":["lamina-forms","lamina-edge-cases","lamina-feedback-and-status"],"tags":["audit-default"]}} |
Error Handling (agent-native)
Every failure mode gets a scenarios[] entry with actor-visible recovery — never blame the actor in copy or findings.
Contract encoding
scenarios:
- id: venue-conflict
category: conflict
trigger:
operation: assign venue
when: concurrent_edit
ux: error_state
recovery: refresh and retry; show who holds lock
| Error type | Design response |
|---|
| Slip (right goal, wrong execution) | Undo, constraints, immediate feedback |
| Mistake (wrong goal/plan) | Better signifiers, conceptual model in copy |
Checklists
- "Human error" is design failure until proven otherwise.
- Preserve actor input on recoverable failures.
- Message: what happened → why (plain language) → next action.
- No error codes without human explanation.
- Automation failures: actor kept informed (no silent mode switches).
Verify checks
- Trigger each failure scenario on live product (actor walk or probe).
- Double-submit / race scenarios (
idempotency-concurrency).
- Actor walk reports confusion at recovery step → finding.
Anti-patterns
- Blame-the-user copy.
- Alert fatigue — warnings dismissed become slip enablers.
- Modal for recoverable batch errors.
- Training docs substituting for error-proofing.
Related