Treat an empty read as unknown, never as a mismatch. Acting on it turns outages into writes.
logic/correctness
A check that asks a yes or no question ('any new migrations?', 'is biometrics available?', 'is the slot free?') has its own failure made to look like the answer 'no' — a discarded exit code, a shell command that ignores its own failure, an empty output read as 'nothing found', an exception caught and returned as false — so a decision is taken on a 'no' never obtained.
The permission check calls the server, the request times out, the catch block returns false, and the user is told they have no access.
The consumer is a decision or a record, not a display; not a policy file that opens the gate when unreadable (Unreadable policy opens the gate), not a missing metric shown as zero (Unknown measurement becomes certainty), and not the reverse case where a check that is supposed to fail cannot be told apart from one that never ran.