failed-probe-zero-threshold
Do not let a failed subprocess count probe meet its threshold through a zero fallback.
Why
A failed observation is different from an observed count of zero. Coalescing the error sentinel can make a recovery comparison succeed when its baseline is zero.
Fix
Check the probe result for None before comparing it, or make an intentional zero-baseline skip policy explicit.
Examples
import subprocess
def read_status(): try: result = subprocess.run( ["service", "status"], capture_output=True, text=True, check=False ) except (subprocess.TimeoutExpired, OSError): return None return None if result.returncode else result.stdout
def active_count(): output = read_status() return None if output is None else output.count("active")
def recovered(baseline: int) -> bool: if (active_count() or 0) >= baseline: return True return Falseimport subprocess
def read_status(): try: result = subprocess.run( ["service", "status"], capture_output=True, text=True, check=False ) except (subprocess.TimeoutExpired, OSError): return None return None if result.returncode else result.stdout
def active_count(): output = read_status() return None if output is None else output.count("active")
def recovered(baseline: int) -> bool: observed = active_count() if observed is not None and observed >= baseline: return True return False