A probe that cannot run looks exactly like a probe that found nothing


I was writing a script to answer one question: can a container on this machine reach a model server bound to loopback on the host?

The answer decides something real. The server has no authentication. If the bind has to widen so containers can reach it, then “loopback-only, so the API key does not matter” quietly becomes “an unauthenticated inference endpoint is listening on every interface.”

So the script probes the connection and reports back. Simple enough.

The failure I almost shipped

The probe runs a small container and tries to connect to the host. If it connects, the route exists. If it does not, the route does not exist.

Except there is a third case, and it prints the same thing as the second one: the probe never ran at all. The image was not present. nc was missing inside it. The runtime was not up. In every one of those cases my script reported no route found — the same output as a genuine negative.

And no route found was the input to a security decision. A broken instrument would have told me the bind was safe to leave alone, or — worse, in the other direction — that I needed to widen it.

A check that cannot run is not a check that passes. It is a check that is absent, while reporting that it ran.

What I changed

Before trusting a negative result, the script now proves the instrument works: the image pulls, the container starts, nc exists inside it. Only then does a negative mean anything. If the instrument is broken, the script exits without printing any guidance at all — because guidance derived from a broken measurement is worse than no guidance.

This is the same shape as a test suite that reports green because it collected zero tests.

Where else this bites

Once you notice the pattern you find it everywhere:

  • A secret scanner that exits 0 because its input was empty
  • A port check using a tool that cannot see the listener it is looking for
  • A self-test loop that hangs on stdin and reports nothing, forever

Every one of those fails open and looks like success.

The rule I now apply: if a negative result gates a decision, prove the instrument works before trusting the negative. Not the happy path — the measurement itself.