Background & current state
Failed or re-prompt-needed transactions can leave users stuck. errorMapping.js + TransactionStatus.jsx exist, but there's no consistent, actionable recovery UX per error class (rejected, expired, insufficient fee, RPC down, contract revert).
Goal
Provide robust transaction error-recovery UX: each mapped error class offers a clear recovery action (retry, switch wallet, add funds, explorer link).
Technical design
- Extend
errorMapping.js to classify errors into actionable categories with recommended recovery actions + copy. TransactionStatus.jsx renders the action(s) (retry, switch wallet, view on explorer, top-up).
- Tie into sponsored tx (NEW-020) for fee issues and circuit-breaker (NEW-037) degraded messaging.
Edge cases
- Unknown error → generic recovery + report option.
- Expired auth entry → re-sign path.
- RPC degraded → "try again shortly" + status.
- User-rejected → friendly re-prompt.
Task breakdown
Acceptance criteria
Testing & verification
- Tests simulating each error class → correct action shown.
Out of scope
- Backend error taxonomy (separate).
Dependencies / related
- Builds on
errorMapping.js; pairs with NEW-020/037/106.
Difficulty: medium · Effort: M · stellar
Background & current state
Failed or re-prompt-needed transactions can leave users stuck.
errorMapping.js+TransactionStatus.jsxexist, but there's no consistent, actionable recovery UX per error class (rejected, expired, insufficient fee, RPC down, contract revert).Goal
Provide robust transaction error-recovery UX: each mapped error class offers a clear recovery action (retry, switch wallet, add funds, explorer link).
Technical design
errorMapping.jsto classify errors into actionable categories with recommended recovery actions + copy.TransactionStatus.jsxrenders the action(s) (retry, switch wallet, view on explorer, top-up).Edge cases
Task breakdown
Acceptance criteria
Testing & verification
Out of scope
Dependencies / related
errorMapping.js; pairs with NEW-020/037/106.Difficulty: medium · Effort: M · stellar