Error Handling and Edge Cases - AshleyThew/Bank GitHub Wiki
This page covers known operational edge cases and current handling behavior. It is organized by failure subsystem so admins can triage faster.
Key safeguards:
- Missing Core dependency: startup error banner and plugin remains limited.
- Save backend connection failure: fallback to SQLite when non-SQLite fails.
- Conversion mode: joining players are disallowed during conversion.
- Loader lock handling: locked accounts trigger delayed/forced load logic.
- Dependency and startup subsystem
- Backend connection subsystem
- Conversion and upgrade gating subsystem
- Account lock and load subsystem
- Logging and diagnostics subsystem
Relevant keys:
Bank.Save.Lock.TimeBank.Save.Load.DelayConvert.ConfirmUpgrade.*Bank.Log.*
Triage order:
- Check startup dependency errors.
- Check backend connection and fallback logs.
- Check conversion/upgrade flags.
- Check lock mode and delayed-load behavior.
/bank admin lock <player> <true/false>/bank admin fix usernames/bank admin debug item
Error-path commands are mostly admin gated.
Lock persistence can use boolean lock rows or time-based lock rows depending on save lock mode.
- Fast server-switch player sees lock message; account unlocks after configured lock behavior window.
- MySQL outage at startup results in automatic SQLite fallback.
- Players remain locked after crash: inspect lock tables and use admin lock tools.
- Repeated conversion kicks: verify
convert.ymlandupgrade.ymlflags are false after conversion. - Repeating SQLite fallback in production: treat as backend incident and keep server in maintenance mode until primary backend is stable.