Transfers silently stalled Network assumptions | A secondary drifted behind the signer | Port 5353 is multicast DNS and was swallowed leaving the VMs | Transfer route moved to 8053 | Probe every new route from the server that will use it |
|---|
False DNS failures after retiring an address Network assumptions | Readiness fell to 0 of 35; cluster cards out of sync | Three checks still queried the retired public address | One endpoint rule: LAN, then route, then public | Sweep every query target when an address is retired |
|---|
New VM had no network Network assumptions | No address after first boot | Copied settings let the hypervisor regenerate the MAC address | Static MAC matched to the first-boot network settings | Identity is explicit in every build |
|---|
External router faults Network assumptions | Agent flapping; router admin page crashed | Consumer router at a remote site | Treated as an external dependency and monitored (open) | Watch every external dependency; never assume it |
|---|
Hidden two-or-three-server limits Hidden coupling | A fourth server failed to join, step by step | Assumptions scattered through the code | Membership generalised to any number | Membership rules live in one place |
|---|
Address uniqueness clash Hidden coupling | A second server could not be built at one site | Public address treated as unique per server | Uniqueness by hostname and LAN address; build queue still to align (open) | One rule, applied everywhere it is checked |
|---|
Standby could not run Platform portability | The cloned VM refused to start | An ARM VM was copied to an Intel host | Portable encrypted replica, rebuilt per architecture | Check the architecture first; state travels as data, not disk images |
|---|
A standby could still be started Platform portability | Masking services silently failed | Unit files sat where the mask had to go | A do-not-start-while-standby rule tied to one marker | Promotion is removing one file |
|---|
Signing keys on public servers Safety design | Found reviewing the key mirror | Keys were mirrored to every secondary | Keys only on hidden standby signers | No private key on a published server |
|---|
Split brain: two signers Safety design | Found in design review, before it happened | Each side able to act alone when cut off | Witness plus two checks; isolation hold; epoch fencing | No side acts without independent agreement |
|---|
False Steward down Check validity | The watcher saw Steward down while it was up | A request method the server does not implement | A real request; only a missing backend counts as down | Test every check against reality before it can act |
|---|