STEP_048J vpn2 missing iface read-only audit

=== STEP_048J RESULT ===
step=STEP_048J_VPN2_MISSING_IFACE_READONLY_AUDIT
decision=PASS_STEP_048J_VPN2_MISSING_IFACE_READONLY_AUDIT
all_ok=True

summary:
  vpn2_ip_link_exists=false
  vpn2_sysfs_exists=false
  vpn2_operstate=missing
  vpn2_hmn_endpoint=192.121.163.235:42530
  vpn2_proto=amneziawg
  vpn2_auto=0
  vpn2_disabled=0
  table202_has_route=false
  current_ping_strict_ok={'vpn1': 'true', 'vpn2': 'false', 'vpn3': 'true', 'vpn4': 'true', 'vpn5': 'true'}
  adapter_egress2_decision=dry_run_ok
  adapter_egress2_reason=dry_run_candidate_selected
  adapter_egress2_candidate=109.248.198.4:37129
  adapter_egress2_current_endpoint=192.121.163.235:42530
  adapter_egress2_pool_age_sec=2226
  vm100_peer_count=5
  vm121_db_summary={'enabled_peers': 5, 'lease_rows': 5, 'pending_jobs': 0}
  next_step=safe_vpn2_only_reapply_or_hmn_replace_dryrun_then_apply

success_checks:
  vm101_rc_zero=True
  audit_readonly=True
  no_apply_performed=True
  vpn2_status_collected=True
  vpn2_missing_confirmed=True
  fresh_pool_present=True
  adapter_egress2_candidate_ready=True
  vpn1_3_4_5_strict_ok=True
  vm100_crosscheck_rc_zero=True
  vm100_peers_five=True
  vm100_controller_v7_running=True
  vm121_crosscheck_rc_zero=True
  vm121_agent_points_to_vm100=True
  vm121_db_pending_zero=True

next_step=SAFE_VPN2_ONLY_REAPPLY_OR_HMN_REPLACE_DRYRUN_THEN_APPLY
TRYCF_REPORT=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-173551_step048j_vpn2_missing_iface_readonly_audit/
REPORT_TXT=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-173551_step048j_vpn2_missing_iface_readonly_audit/report.txt
FACTS_JSON=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-173551_step048j_vpn2_missing_iface_readonly_audit/facts.json