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.