Collect STEP_046L

report.txt

=== COLLECT STEP_046L ===
generated_at=2026-07-10T10:49:36+00:00
workdir=/tmp/STEP_046L_VM100_LOCAL_CONTROLLER_APPLY_PREVIEW_NO_WRITE_20260710-104803

result=046L_WORKDIR_FOUND

__FILES__
contract_validate.txt
facts.json
report.txt
vm100_046l.rc
vm100_046l.stderr
vm100_046l.txt

__REPORT_IF_EXISTS__
=== STEP_046L RESULT ===
step=STEP_046L_VM100_LOCAL_CONTROLLER_APPLY_PREVIEW_NO_WRITE
decision=PASS_STEP_046L_VM100_LOCAL_CONTROLLER_APPLY_PREVIEW_NO_WRITE
all_ok=True

summary:
  script=/usr/local/sbin/router-wgpay-egress-local.sh
  rollback=/root/rollback-step046l-vm100-controller-v3-20260710-104803.sh
  script_sha256=d20ed7b3b5bb13a2fb7a5536cf924eef3f96eaddafa7d9a73a3158b36e804eb4
  live_dry_summary={'rows': 5, 'active_count': 0, 'idle_count': 5, 'min_class': 'cs1', 'min_count': 1, 'max_class': 'cs1', 'max_count': 1, 'blocked': False, 'block_reason': '', 'action_count': 0, 'noop': True, 'action_reason': 'already_balanced', 'selector_file_would_change': False, 'selector_apply_would_run': False, 'state_file_would_write': False}
  live_apply_preview_summary={'rows': 5, 'active_count': 0, 'idle_count': 5, 'min_class': 'cs1', 'min_count': 1, 'max_class': 'cs1', 'max_count': 1, 'blocked': False, 'block_reason': '', 'action_count': 0, 'noop': True, 'action_reason': 'already_balanced', 'selector_file_would_change': False, 'selector_apply_would_run': False, 'state_file_would_write': False}
  synthetic_imbalance_action={'tunnel_ip': '10.253.1.10', 'from_class': 'cs1', 'from_target_id': 'canary_vpn3', 'to_class': 'cs2', 'to_target_id': 'canary_vpn4', 'reason': 'idle_rebalance_most_loaded_to_least_loaded'}
  synthetic_imbalance_transaction_preview={'would_update_selector_rows': 1, 'would_run_selector_apply': True, 'would_write_state_file': True, 'proposed_selector_sha256': '7cd5b9f187d8fca50aa586d5181e397492419aef0d34daca57aa6dcb12742e56'}
  synthetic_active_pin_action={'tunnel_ip': '10.253.1.11', 'from_class': 'cs1', 'from_target_id': 'canary_vpn3', 'to_class': 'cs2', 'to_target_id': 'canary_vpn4', 'reason': 'idle_rebalance_most_loaded_to_least_loaded'}
  synthetic_active_pin_transaction_preview={'would_update_selector_rows': 1, 'would_run_selector_apply': True, 'would_write_state_file': True, 'proposed_selector_sha256': '67ec7c6f983db945ab56480b3f578fa2666898c89709ea784c7ebfd507ce1dab'}
  apply_refusal_rc=78
  line_12_final=10.253.1.12 cs3 canary_vpn5
  peer_count_final=5
  allowed_ip_count_final=5
  uci_peer_sections_final=0
  init_enabled_final=false
  service_running_final=false

success_checks:
  vm100_046l_rc_zero=True
  script_executable=True
  service_disabled=True
  service_not_running=True
  live_dry_run_rc_zero=True
  live_dry_rows_five=True
  live_dry_action_count_zero=True
  live_dry_noop=True
  live_apply_preview_rc_zero=True
  live_apply_preview_no_action=True
  live_apply_preview_no_write=True
  synthetic_imbalance_preview_rc_zero=True
  synthetic_imbalance_action_one=True
  synthetic_imbalance_to_cs2=True
  synthetic_imbalance_tx_preview=True
  synthetic_active_pin_preview_rc_zero=True
  synthetic_active_pin_action_one=True
  synthetic_active_pin_does_not_move_active_10=True
  synthetic_active_pin_moves_idle_11=True
  synthetic_active_pin_tx_preview=True
  apply_refused=True
  selector_rows_final_five=True
  line_12_final_ok=True
  peer_count_final_five=True
  allowed_ip_count_final_five=True
  uci_peer_sections_zero=True

expected_absence:
  selector_changed=False
  wg_runtime_changed=False
  service_enabled=False

next_step=STEP_046M_VM100_LOCAL_CONTROLLER_ONE_SYNTHETIC_APPLY_RESTORE
TRYCF_REPORT=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-104803_step046l_vm100_controller_apply_preview_no_write/
REPORT_TXT=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-104803_step046l_vm100_controller_apply_preview_no_write/report.txt
FACTS_JSON=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-104803_step046l_vm100_controller_apply_preview_no_write/facts.json

__FACTS_IF_EXISTS__
{
  "assessment": {
    "all_ok": true,
    "decision": "PASS_STEP_046L_VM100_LOCAL_CONTROLLER_APPLY_PREVIEW_NO_WRITE",
    "expected_absence": {
      "selector_changed": false,
      "service_enabled": false,
      "wg_runtime_changed": false
    },
    "success_checks": {
      "allowed_ip_count_final_five": true,
      "apply_refused": true,
      "line_12_final_ok": true,
      "live_apply_preview_no_action": true,
      "live_apply_preview_no_write": true,
      "live_apply_preview_rc_zero": true,
      "live_dry_action_count_zero": true,
      "live_dry_noop": true,
      "live_dry_rows_five": true,
      "live_dry_run_rc_zero": true,
      "peer_count_final_five": true,
      "script_executable": true,
      "selector_rows_final_five": true,
      "service_disabled": true,
      "service_not_running": true,
      "synthetic_active_pin_action_one": true,
      "synthetic_active_pin_does_not_move_active_10": true,
      "synthetic_active_pin_moves_idle_11": true,
      "synthetic_active_pin_preview_rc_zero": true,
      "synthetic_active_pin_tx_preview": true,
      "synthetic_imbalance_action_one": true,
      "synthetic_imbalance_preview_rc_zero": true,
      "synthetic_imbalance_to_cs2": true,
      "synthetic_imbalance_tx_preview": true,
      "uci_peer_sections_zero": true,
      "vm100_046l_rc_zero": true
    },
    "warnings": [
      "Apply-preview computes transaction but does not write selector, run selector apply, or write state.",
      "Real apply remains refused with rc=78.",
      "Controller service remains disabled and not running."
    ]
  },
  "changes": {
    "selector_changed": "NO",
    "vm100_controller_script_patched": "YES",
    "vm100_service_enabled": "NO",
    "vm100_service_running": "NO",
    "wg_runtime_changed": "NO"
  },
  "live_apply_preview_json": {
    "actions": [],
    "mode": "--apply-preview",
    "rows": [
      {
        "active_now": false,
        "egress_class": "cs1",
        "expected_target_id": "canary_vpn3",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn3",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.10"
      },
      {
        "active_now": false,
        "egress_class": "cs2",
        "expected_target_id": "canary_vpn4",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn4",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.11"
      },
      {
        "active_now": false,
        "egress_class": "cs3",
        "expected_target_id": "canary_vpn5",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn5",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.12"
      },
      {
        "active_now": false,
        "egress_class": "cs4",
        "expected_target_id": "canary_vpn1",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn1",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.13"
      },
      {
        "active_now": false,
        "egress_class": "cs5",
        "expected_target_id": "canary_vpn2",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn2",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.14"
      }
    ],
    "schema": "router-wgpay-egress-local-v3",
    "selector_file": "/etc/router-wgpay-selector.d/peers.conf",
    "summary": {
      "action_count": 0,
      "action_reason": "already_balanced",
      "active_count": 0,
      "block_reason": "",
      "blocked": false,
      "idle_count": 5,
      "max_class": "cs1",
      "max_count": 1,
      "min_class": "cs1",
      "min_count": 1,
      "noop": true,
      "rows": 5,
      "selector_apply_would_run": false,
      "selector_file_would_change": false,
      "state_file_would_write": false
    },
    "synthetic_active_ips": "",
    "transaction_preview": {
      "proposed_selector_sha256": "",
      "would_run_selector_apply": false,
      "would_update_selector_rows": 0,
      "would_write_state_file": false
    }
  },
  "live_dry_run_json": {
    "actions": [],
    "mode": "--dry-run",
    "rows": [
      {
        "active_now": false,
        "egress_class": "cs1",
        "expected_target_id": "canary_vpn3",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn3",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.10"
      },
      {
        "active_now": false,
        "egress_class": "cs2",
        "expected_target_id": "canary_vpn4",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn4",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.11"
      },
      {
        "active_now": false,
        "egress_class": "cs3",
        "expected_target_id": "canary_vpn5",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn5",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.12"
      },
      {
        "active_now": false,
        "egress_class": "cs4",
        "expected_target_id": "canary_vpn1",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn1",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.13"
      },
      {
        "active_now": false,
        "egress_class": "cs5",
        "expected_target_id": "canary_vpn2",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn2",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.14"
      }
    ],
    "schema": "router-wgpay-egress-local-v3",
    "selector_file": "/etc/router-wgpay-selector.d/peers.conf",
    "summary": {
      "action_count": 0,
      "action_reason": "already_balanced",
      "active_count": 0,
      "block_reason": "",
      "blocked": false,
      "idle_count": 5,
      "max_class": "cs1",
      "max_count": 1,
      "min_class": "cs1",
      "min_count": 1,
      "noop": true,
      "rows": 5,
      "selector_apply_would_run": false,
      "selector_file_would_change": false,
      "state_file_would_write": false
    },
    "synthetic_active_ips": "",
    "transaction_preview": {
      "proposed_selector_sha256": "",
      "would_run_selector_apply": false,
      "would_update_selector_rows": 0,
      "would_write_state_file": false
    }
  },
  "mode": "VM100_LOCAL_CONTROLLER_V3_APPLY_PREVIEW_NO_WRITE",
  "publish": {
    "facts_json": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-104803_step046l_vm100_controller_apply_preview_no_write/facts.json",
    "report_txt": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-104803_step046l_vm100_controller_apply_preview_no_write/report.txt",
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-104803_step046l_vm100_controller_apply_preview_no_write/"
  },
  "schema": "router-step-facts-v1",
  "step": "STEP_046L_VM100_LOCAL_CONTROLLER_APPLY_PREVIEW_NO_WRITE",
  "summary": {
    "allowed_ip_count_final": "5",
    "apply_refusal_rc": "78",
    "init_enabled_final": "false",
    "line_12_final": "10.253.1.12 cs3 canary_vpn5",
    "live_apply_preview_summary": {
      "action_count": 0,
      "action_reason": "already_balanced",
      "active_count": 0,
      "block_reason": "",
      "blocked": false,
      "idle_count": 5,
      "max_class": "cs1",
      "max_count": 1,
      "min_class": "cs1",
      "min_count": 1,
      "noop": true,
      "rows": 5,
      "selector_apply_would_run": false,
      "selector_file_would_change": false,
      "state_file_would_write": false
    },
    "live_dry_summary": {
      "action_count": 0,
      "action_reason": "already_balanced",
      "active_count": 0,
      "block_reason": "",
      "blocked": false,
      "idle_count": 5,
      "max_class": "cs1",
      "max_count": 1,
      "min_class": "cs1",
      "min_count": 1,
      "noop": true,
      "rows": 5,
      "selector_apply_would_run": false,
      "selector_file_would_change": false,
      "state_file_would_write": false
    },
    "peer_count_final": "5",
    "rollback": "/root/rollback-step046l-vm100-controller-v3-20260710-104803.sh",
    "script": "/usr/local/sbin/router-wgpay-egress-local.sh",
    "script_sha256": "d20ed7b3b5bb13a2fb7a5536cf924eef3f96eaddafa7d9a73a3158b36e804eb4",
    "service_running_final": "false",
    "synthetic_active_pin_action": {
      "from_class": "cs1",
      "from_target_id": "canary_vpn3",
      "reason": "idle_rebalance_most_loaded_to_least_loaded",
      "to_class": "cs2",
      "to_target_id": "canary_vpn4",
      "tunnel_ip": "10.253.1.11"
    },
    "synthetic_active_pin_transaction_preview": {
      "proposed_selector_sha256": "67ec7c6f983db945ab56480b3f578fa2666898c89709ea784c7ebfd507ce1dab",
      "would_run_selector_apply": true,
      "would_update_selector_rows": 1,
      "would_write_state_file": true
    },
    "synthetic_imbalance_action": {
      "from_class": "cs1",
      "from_target_id": "canary_vpn3",
      "reason": "idle_rebalance_most_loaded_to_least_loaded",
      "to_class": "cs2",
      "to_target_id": "canary_vpn4",
      "tunnel_ip": "10.253.1.10"
    },
    "synthetic_imbalance_transaction_preview": {
      "proposed_selector_sha256": "7cd5b9f187d8fca50aa586d5181e397492419aef0d34daca57aa6dcb12742e56",
      "would_run_selector_apply": true,
      "would_update_selector_rows": 1,
      "would_write_state_file": true
    },
    "uci_peer_sections_final": "0"
  },
  "synthetic_active_pin_apply_preview_json": {
    "actions": [
      {
        "from_class": "cs1",
        "from_target_id": "canary_vpn3",
        "reason": "idle_rebalance_most_loaded_to_least_loaded",
        "to_class": "cs2",
        "to_target_id": "canary_vpn4",
        "tunnel_ip": "10.253.1.11"
      }
    ],
    "mode": "--apply-preview",
    "rows": [
      {
        "active_now": true,
        "egress_class": "cs1",
        "expected_target_id": "canary_vpn3",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn3",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.10"
      },
      {
        "active_now": false,
        "egress_class": "cs1",
        "expected_target_id": "canary_vpn3",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn3",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.11"
      },
      {
        "active_now": false,
        "egress_class": "cs3",
        "expected_target_id": "canary_vpn5",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn5",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.12"
      },
      {
        "active_now": false,
        "egress_class": "cs4",
        "expected_target_id": "canary_vpn1",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn1",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.13"
      },
      {
        "active_now": false,
        "egress_class": "cs5",
        "expected_target_id": "canary_vpn2",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn2",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.14"
      }
    ],
    "schema": "router-wgpay-egress-local-v3",
    "selector_file": "/tmp/step046l-synthetic-active-pin.28409",
    "summary": {
      "action_count": 1,
      "action_reason": "idle_rebalance_most_loaded_to_least_loaded",
      "active_count": 1,
      "block_reason": "",
      "blocked": false,
      "idle_count": 4,
      "max_class": "cs1",
      "max_count": 2,
      "min_class": "cs2",
      "min_count": 0,
      "noop": false,
      "rows": 5,
      "selector_apply_would_run": true,
      "selector_file_would_change": true,
      "state_file_would_write": true
    },
    "synthetic_active_ips": "10.253.1.10",
    "transaction_preview": {
      "proposed_selector_sha256": "67ec7c6f983db945ab56480b3f578fa2666898c89709ea784c7ebfd507ce1dab",
      "would_run_selector_apply": true,
      "would_update_selector_rows": 1,
      "would_write_state_file": true
    }
  },
  "synthetic_imbalance_apply_preview_json": {
    "actions": [
      {
        "from_class": "cs1",
        "from_target_id": "canary_vpn3",
        "reason": "idle_rebalance_most_loaded_to_least_loaded",
        "to_class": "cs2",
        "to_target_id": "canary_vpn4",
        "tunnel_ip": "10.253.1.10"
      }
    ],
    "mode": "--apply-preview",
    "rows": [
      {
        "active_now": false,
        "egress_class": "cs1",
        "expected_target_id": "canary_vpn3",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn3",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.10"
      },
      {
        "active_now": false,
        "egress_class": "cs1",
        "expected_target_id": "canary_vpn3",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn3",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.11"
      },
      {
        "active_now": false,
        "egress_class": "cs3",
        "expected_target_id": "canary_vpn5",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn5",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.12"
      },
      {
        "active_now": false,
        "egress_class": "cs4",
        "expected_target_id": "canary_vpn1",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn1",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.13"
      },
      {
        "active_now": false,
        "egress_class": "cs5",
        "expected_target_id": "canary_vpn2",
        "in_packets": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn2",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.14"
      }
    ],
    "schema": "router-wgpay-egress-local-v3",
    "selector_file": "/tmp/step046l-synthetic-imbalance.28409",
    "summary": {
      "action_count": 1,
      "action_reason": "idle_rebalance_most_loaded_to_least_loaded",
      "active_count": 0,
      "block_reason": "",
      "blocked": false,
      "idle_count": 5,
      "max_class": "cs1",
      "max_count": 2,
      "min_class": "cs2",
      "min_count": 0,
      "noop": false,
      "rows": 5,
      "selector_apply_would_run": true,
      "selector_file_would_change": true,
      "state_file_would_write": true
    },
    "synthetic_active_ips": "",
    "transaction_preview": {
      "proposed_selector_sha256": "7cd5b9f187d8fca50aa586d5181e397492419aef0d34daca57aa6dcb12742e56",
      "would_run_selector_apply": true,
      "would_update_selector_rows": 1,
      "would_write_state_file": true
    }
  }
}

__RC_FILES__
--- vm100_046l.rc ---
vm100_046l_rc=0

__STDERR_TAILS__
--- vm100_046l.stderr ---

__VM100_046L_TAIL__
__INSTALL__
script=/usr/local/sbin/router-wgpay-egress-local.sh
rollback=/root/rollback-step046l-vm100-controller-v3-20260710-104803.sh
script_sha256=d20ed7b3b5bb13a2fb7a5536cf924eef3f96eaddafa7d9a73a3158b36e804eb4
script_executable=true
init_enabled=false
service_running=false
__BASELINE__
selector_sha256_pre=2db1a0c46c1b93d9ede5f560d2d00db2dad3283adbc8f6ca6b0434ab695d8460
selector_rows_pre=5
line_12_pre=10.253.1.12 cs3 canary_vpn5
peer_count_pre=5
allowed_ip_count_pre=5
uci_peer_sections_pre=0
__LIVE_DRY_RUN_JSON_BEGIN__
{
  "schema": "router-wgpay-egress-local-v3",
  "mode": "--dry-run",
  "selector_file": "/etc/router-wgpay-selector.d/peers.conf",
  "synthetic_active_ips": "",
  "rows": [
    {"tunnel_ip":"10.253.1.10","egress_class":"cs1","target_id":"canary_vpn3","expected_target_id":"canary_vpn3","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.11","egress_class":"cs2","target_id":"canary_vpn4","expected_target_id":"canary_vpn4","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.12","egress_class":"cs3","target_id":"canary_vpn5","expected_target_id":"canary_vpn5","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.13","egress_class":"cs4","target_id":"canary_vpn1","expected_target_id":"canary_vpn1","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.14","egress_class":"cs5","target_id":"canary_vpn2","expected_target_id":"canary_vpn2","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false}
  ],
  "actions": [
  ],
  "transaction_preview": {
    "would_update_selector_rows": 0,
    "would_run_selector_apply": false,
    "would_write_state_file": false,
    "proposed_selector_sha256": ""
  },
  "summary": {
    "rows": 5,
    "active_count": 0,
    "idle_count": 5,
    "min_class": "cs1",
    "min_count": 1,
    "max_class": "cs1",
    "max_count": 1,
    "blocked": false,
    "block_reason": "",
    "action_count": 0,
    "noop": true,
    "action_reason": "already_balanced",
    "selector_file_would_change": false,
    "selector_apply_would_run": false,
    "state_file_would_write": false
  }
}
__LIVE_DRY_RUN_JSON_END__
live_dry_run_rc=0
__LIVE_APPLY_PREVIEW_JSON_BEGIN__
{
  "schema": "router-wgpay-egress-local-v3",
  "mode": "--apply-preview",
  "selector_file": "/etc/router-wgpay-selector.d/peers.conf",
  "synthetic_active_ips": "",
  "rows": [
    {"tunnel_ip":"10.253.1.10","egress_class":"cs1","target_id":"canary_vpn3","expected_target_id":"canary_vpn3","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.11","egress_class":"cs2","target_id":"canary_vpn4","expected_target_id":"canary_vpn4","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.12","egress_class":"cs3","target_id":"canary_vpn5","expected_target_id":"canary_vpn5","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.13","egress_class":"cs4","target_id":"canary_vpn1","expected_target_id":"canary_vpn1","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.14","egress_class":"cs5","target_id":"canary_vpn2","expected_target_id":"canary_vpn2","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false}
  ],
  "actions": [
  ],
  "transaction_preview": {
    "would_update_selector_rows": 0,
    "would_run_selector_apply": false,
    "would_write_state_file": false,
    "proposed_selector_sha256": ""
  },
  "summary": {
    "rows": 5,
    "active_count": 0,
    "idle_count": 5,
    "min_class": "cs1",
    "min_count": 1,
    "max_class": "cs1",
    "max_count": 1,
    "blocked": false,
    "block_reason": "",
    "action_count": 0,
    "noop": true,
    "action_reason": "already_balanced",
    "selector_file_would_change": false,
    "selector_apply_would_run": false,
    "state_file_would_write": false
  }
}
__LIVE_APPLY_PREVIEW_JSON_END__
live_apply_preview_rc=0
__SYNTHETIC_IMBALANCE_APPLY_PREVIEW_JSON_BEGIN__
{
  "schema": "router-wgpay-egress-local-v3",
  "mode": "--apply-preview",
  "selector_file": "/tmp/step046l-synthetic-imbalance.28409",
  "synthetic_active_ips": "",
  "rows": [
    {"tunnel_ip":"10.253.1.10","egress_class":"cs1","target_id":"canary_vpn3","expected_target_id":"canary_vpn3","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.11","egress_class":"cs1","target_id":"canary_vpn3","expected_target_id":"canary_vpn3","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.12","egress_class":"cs3","target_id":"canary_vpn5","expected_target_id":"canary_vpn5","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.13","egress_class":"cs4","target_id":"canary_vpn1","expected_target_id":"canary_vpn1","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.14","egress_class":"cs5","target_id":"canary_vpn2","expected_target_id":"canary_vpn2","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false}
  ],
  "actions": [
    {"tunnel_ip":"10.253.1.10","from_class":"cs1","from_target_id":"canary_vpn3","to_class":"cs2","to_target_id":"canary_vpn4","reason":"idle_rebalance_most_loaded_to_least_loaded"}
  ],
  "transaction_preview": {
    "would_update_selector_rows": 1,
    "would_run_selector_apply": true,
    "would_write_state_file": true,
    "proposed_selector_sha256": "7cd5b9f187d8fca50aa586d5181e397492419aef0d34daca57aa6dcb12742e56"
  },
  "summary": {
    "rows": 5,
    "active_count": 0,
    "idle_count": 5,
    "min_class": "cs2",
    "min_count": 0,
    "max_class": "cs1",
    "max_count": 2,
    "blocked": false,
    "block_reason": "",
    "action_count": 1,
    "noop": false,
    "action_reason": "idle_rebalance_most_loaded_to_least_loaded",
    "selector_file_would_change": true,
    "selector_apply_would_run": true,
    "state_file_would_write": true
  }
}
__SYNTHETIC_IMBALANCE_APPLY_PREVIEW_JSON_END__
synthetic_imbalance_apply_preview_rc=0
__SYNTHETIC_ACTIVE_PIN_APPLY_PREVIEW_JSON_BEGIN__
{
  "schema": "router-wgpay-egress-local-v3",
  "mode": "--apply-preview",
  "selector_file": "/tmp/step046l-synthetic-active-pin.28409",
  "synthetic_active_ips": "10.253.1.10",
  "rows": [
    {"tunnel_ip":"10.253.1.10","egress_class":"cs1","target_id":"canary_vpn3","expected_target_id":"canary_vpn3","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":true},
    {"tunnel_ip":"10.253.1.11","egress_class":"cs1","target_id":"canary_vpn3","expected_target_id":"canary_vpn3","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.12","egress_class":"cs3","target_id":"canary_vpn5","expected_target_id":"canary_vpn5","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.13","egress_class":"cs4","target_id":"canary_vpn1","expected_target_id":"canary_vpn1","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false},
    {"tunnel_ip":"10.253.1.14","egress_class":"cs5","target_id":"canary_vpn2","expected_target_id":"canary_vpn2","selector_target_match":true,"out_packets":0,"in_packets":0,"total_packets":0,"total_bytes":0,"active_now":false}
  ],
  "actions": [
    {"tunnel_ip":"10.253.1.11","from_class":"cs1","from_target_id":"canary_vpn3","to_class":"cs2","to_target_id":"canary_vpn4","reason":"idle_rebalance_most_loaded_to_least_loaded"}
  ],
  "transaction_preview": {
    "would_update_selector_rows": 1,
    "would_run_selector_apply": true,
    "would_write_state_file": true,
    "proposed_selector_sha256": "67ec7c6f983db945ab56480b3f578fa2666898c89709ea784c7ebfd507ce1dab"
  },
  "summary": {
    "rows": 5,
    "active_count": 1,
    "idle_count": 4,
    "min_class": "cs2",
    "min_count": 0,
    "max_class": "cs1",
    "max_count": 2,
    "blocked": false,
    "block_reason": "",
    "action_count": 1,
    "noop": false,
    "action_reason": "idle_rebalance_most_loaded_to_least_loaded",
    "selector_file_would_change": true,
    "selector_apply_would_run": true,
    "state_file_would_write": true
  }
}
__SYNTHETIC_ACTIVE_PIN_APPLY_PREVIEW_JSON_END__
synthetic_active_pin_apply_preview_rc=0
apply_refusal_rc=78
apply_refusal_stderr=ERROR: real apply disabled in STEP_046L; use --apply-preview first|
__FINAL__
selector_sha256_final=2db1a0c46c1b93d9ede5f560d2d00db2dad3283adbc8f6ca6b0434ab695d8460
selector_rows_final=5
line_12_final=10.253.1.12 cs3 canary_vpn5
peer_count_final=5
allowed_ip_count_final=5
uci_peer_sections_final=0
init_enabled_final=false
service_running_final=false
selector_changed=false
wg_runtime_changed=false
service_enabled=false