diff --git a/web/VaultPanel.tsx b/web/VaultPanel.tsx index f464eed..92e66e4 100644 --- a/web/VaultPanel.tsx +++ b/web/VaultPanel.tsx @@ -253,17 +253,33 @@ export const VaultPanel = () => { {health ? (
- {/* Three outcomes, not two. "Answered but is not a Vaultwarden" is its own state and the - main reason this check exists — pointing at the wrong port on a busy host gives a - perfectly good 200 from something that can never serve a vault. */} - - {health.ok ? (health.identified ? 'Vaultwarden' : 'Answered, but not a Vaultwarden') : 'No answer'} + {/* + FOUR outcomes, and the fourth is the one that bit: `identified` is missing entirely + when an OLDER sidecar answers, because it predates the field. Treating missing as + false reported a perfectly good Vaultwarden as "not a Vaultwarden" — a false negative + produced by a version skew between two processes, not by anything about the vault. + (`pm2 restart officer` does not restart `officer-vault`; they are PM2 peers.) + + So only an explicit `false` is the warning. Absent means the sidecar did not say, + which is honestly reported as plain reachability rather than guessed at in either + direction. + */} + + {!health.ok + ? 'No answer' + : health.identified === false + ? 'Answered, but not a Vaultwarden' + : health.identified === true + ? 'Vaultwarden' + : 'Answering'} {health.version && v{health.version}} {health.ms !== undefined && {health.ms}ms} {health.upstreamStatus !== undefined && HTTP {health.upstreamStatus}}
- {health.ok && !health.identified && ( + {health.ok && health.identified === false && ( Something is listening there, but it did not identify itself as a Vaultwarden. Check the port.