{
  "schema": "router-step-inline-diagnostic-v4",
  "step": "STEP_050M07B2_NORMALIZE_COMMIT_AND_RUN_FULL_REFRESH",
  "failure": {
    "reason": "VM101_CONTROLLED_REFRESH_FAILED",
    "rc": 34,
    "line": 1546,
    "stage": "05/10",
    "last_success": "controlled_vm101_script_published"
  },
  "command_results": {
    "hash_check_rc": "0",
    "precheck_rc": "0",
    "vm101_rc": "34",
    "postcheck_rc": "NOT_RUN",
    "rollback_rc": "0",
    "plan_restore_rc": "NOT_NEEDED"
  },
  "automatic_classification": "COMMIT_BOOLEAN_REPRESENTATION_MISMATCH",
  "production_modified_after_rollback": "unknown",
  "captured_streams": {
    "vm101-precheck.txt": {
      "size_bytes": 2993,
      "tail": "__FACT__ commit_config_line=EMERGENCY_COMMIT_ENABLED=1\n__FACT__ commit_raw_value=1\n__FACT__ runner_sha256=bea82c260ba6006b524ef01c614848097bd231fa6d49a725baded99046fe5d11\n__FACT__ hook_running=true\n__FACT__ hook_enabled=true\n__FACT__ watcher_running=true\n__FACT__ watcher_enabled=true\n__BLOCK_BEGIN__ runner_commit_guard\nif [ \"$mode\" = \"commit\" ]; then\n  if [ \"$EMERGENCY_COMMIT_ENABLED\" != \"true\" ]; then\n    emit_json \"commit_disabled_in_step050f\" \"skeleton_installed_but_commit_disabled_until_reviewed_followup\"\n    exit 0\n  fi\n\n  if [ \"$confirm\" != \"$EMERGENCY_CONFIRM_TOKEN\" ]; then\n    emit_json \"missing_or_wrong_confirm_token\" \"commit_requires_exact_confirm_token\"\n    exit 0\n  fi\n__BLOCK_END__ runner_commit_guard\n__JSON_BEGIN__ runner\n{\n  \"schema\": \"router-egress-emergency-refresh-v1\",\n  \"mode\": \"dry-run\",\n  \"decision\": \"would_run_emergency_refresh\",\n  \"reason\": \"threshold_or_force_reached_no_commit_in_dry_run\",\n  \"daily_fail_count\": 10,\n  \"daily_fail_threshold\": 5,\n  \"threshold_reached\": true,\n  \"force\": false,\n  \"cooldown_seconds\": 600,\n  \"cooldown_remaining\": 0,\n  \"healthy_vpn_slots\": 5,\n  \"commit_enabled\": true,\n  \"direct_failopen_enabled\": false,\n  \"direct_failopen_action\": \"disabled_not_allowed_in_step050f\",\n  \"helper_ok\": true,\n  \"refresh_cmd\": \"/root/hmn/hmn-refresh-pool-safe.sh\",\n  \"refresh_cmd_exists\": true,\n  \"planner_cmd\": \"/usr/local/sbin/router-egress-hmn-plan-top5.sh\",\n  \"planner_cmd_exists\": true,\n  \"rebalance_apply_cmd\": \"/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh\",\n  \"rebalance_apply_cmd_exists\": true,\n  \"watcher_cmd\": \"/usr/local/sbin/router-egress-health-repair-watch.sh\",\n  \"watcher_cmd_exists\": true,\n  \"last_emergency_refresh_status\": \"NONE\",\n  \"last_emergency_refresh_epoch\": 0\n}\n__JSON_END__ runner\n__JSON_BEGIN__ planner\n{\n  \"schema\": \"router-egress-hmn-plan-top5-v2\",\n  \"decision\": \"plan_ok\",\n  \"pool\": \"/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv\",\n  \"pool_mtime_epoch\": 1783702742,\n  \"quarantine_enabled\": true,\n  \"quarantine_excluded_count\": 4,\n  \"duplicate_excluded_count\": 0,\n  \"desired_count\": 5,\n  \"changes_count\": 3,\n  \"plan\": [\n    {\"slot\":\"egress1\",\"iface\":\"vpn1\",\"current\":\"109.248.198.4:37129\",\"target\":\"192.121.163.235:42530\",\"change\":true,\"target_rank\":\"1\",\"target_avg_ms\":\"39.008\"}\n    ,\n    {\"slot\":\"egress2\",\"iface\":\"vpn2\",\"current\":\"151.236.30.139:33998\",\"target\":\"37.235.54.96:38971\",\"change\":true,\"target_rank\":\"7\",\"target_avg_ms\":\"62.926\"}\n    ,\n    {\"slot\":\"egress3\",\"iface\":\"vpn3\",\"current\":\"95.211.68.119:45176\",\"target\":\"95.211.68.119:45176\",\"change\":false,\"target_rank\":\"2\",\"target_avg_ms\":\"44.271\"}\n    ,\n    {\"slot\":\"egress4\",\"iface\":\"vpn4\",\"current\":\"178.215.227.13:44408\",\"target\":\"192.71.244.202:45735\",\"change\":true,\"target_rank\":\"8\",\"target_avg_ms\":\"66.349\"}\n    ,\n    {\"slot\":\"egress5\",\"iface\":\"vpn5\",\"current\":\"157.173.27.69:41797\",\"target\":\"157.173.27.69:41797\",\"change\":false,\"target_rank\":\"5\",\"target_avg_ms\":\"56.803\"}\n  ]\n}\n__JSON_END__ planner\n__FACT__ production_modified=false\n"
    },
    "vm101-rollback.txt": {
      "size_bytes": 28,
      "tail": "STEP_050M07B2 rollback rc=1\n"
    },
    "vm101-tool-hash-check.txt": {
      "size_bytes": 2347,
      "tail": "__HASH__ match=true missing=false expected=d48c41014ff94cbecd6dd8a2f543b5a08c797d226c3e745756a2787340d57151 actual=d48c41014ff94cbecd6dd8a2f543b5a08c797d226c3e745756a2787340d57151 path=/usr/local/sbin/router-egress-health-repair-watch.sh\n__HASH__ match=true missing=false expected=258ef9daf0b3f8aaf2960025e6d4d7f0c1ae30cede781badfbd6b3919ea25afc actual=258ef9daf0b3f8aaf2960025e6d4d7f0c1ae30cede781badfbd6b3919ea25afc path=/usr/local/sbin/router-egress-emergency-decision-hook.sh\n__HASH__ match=true missing=false expected=bea82c260ba6006b524ef01c614848097bd231fa6d49a725baded99046fe5d11 actual=bea82c260ba6006b524ef01c614848097bd231fa6d49a725baded99046fe5d11 path=/usr/local/sbin/router-egress-emergency-refresh.sh\n__HASH__ match=true missing=false expected=6ec99e157235d811d6f0f3ab92de7f3371dc813f2478a654358982cda7ce34ce actual=6ec99e157235d811d6f0f3ab92de7f3371dc813f2478a654358982cda7ce34ce path=/usr/local/sbin/router-egress-hmn-plan-top5.sh\n__HASH__ match=true missing=false expected=2fa6b725c5e123b7fdc3dd14747058a02415d025231054c7537d72b8edc2346f actual=2fa6b725c5e123b7fdc3dd14747058a02415d025231054c7537d72b8edc2346f path=/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh\n__HASH__ match=true missing=false expected=9a546c2958c9fd44c927af3559966d1aa0ceb7a5e20f2373c7a95a31728dd0c0 actual=9a546c2958c9fd44c927af3559966d1aa0ceb7a5e20f2373c7a95a31728dd0c0 path=/usr/local/lib/router-egress-recovery-state.sh\n__HASH__ match=true missing=false expected=bb047e820196c4c5cb263499ed890c782190293257a2033568015c6b19230682 actual=bb047e820196c4c5cb263499ed890c782190293257a2033568015c6b19230682 path=/root/hmn/hmn-refresh-pool-safe.sh\n__HASH__ match=true missing=false expected=195a8450fa333a50ae209be25f823873d475989bdbce1a824a86268d36c9e942 actual=195a8450fa333a50ae209be25f823873d475989bdbce1a824a86268d36c9e942 path=/etc/init.d/router-egress-health-repair\n__HASH__ match=true missing=false expected=152fa0d45cb57ac60d34529ef0b29d32e65a2ad03845129fd7c2b41eaf787934 actual=152fa0d45cb57ac60d34529ef0b29d32e65a2ad03845129fd7c2b41eaf787934 path=/etc/init.d/router-egress-emergency-decision\n__HASH__ match=true missing=false expected=42ba3c0b10d8535d4100cc4e35e02bc2c0f3fe104bdedf8cf91700832d9051a8 actual=42ba3c0b10d8535d4100cc4e35e02bc2c0f3fe104bdedf8cf91700832d9051a8 path=/etc/init.d/router-egress-slots\n__SUMMARY__ checked=10 errors=0\n"
    },
    "vm101.txt": {
      "size_bytes": 28900,
      "tail": "__TRACE__ stage=required_contract\n__FACT__ commit_raw_pre=1\n__TRACE__ stage=preflight\n__FACT__ repair_counter_pre=10\n__FACT__ pool_hash_pre=b9fd15bfe7aa2337048cbf7198c798e74e67e9b2f6e6040fb3c2138084378599\n__FACT__ pool_mtime_pre=1783702742\n__FACT__ network_hash_pre=2742056472030dd8935de66c115180aa8775e608d98aab2b16fcbe90ca87e6c2\n__FACT__ state_mode_pre=NORMAL\n__FACT__ state_status_pre=NONE\n__FACT__ state_epoch_pre=0\n__JSON_BEGIN__ runner_pre\n{\n  \"schema\": \"router-egress-emergency-refresh-v1\",\n  \"mode\": \"dry-run\",\n  \"decision\": \"would_run_emergency_refresh\",\n  \"reason\": \"threshold_or_force_reached_no_commit_in_dry_run\",\n  \"daily_fail_count\": 10,\n  \"daily_fail_threshold\": 5,\n  \"threshold_reached\": true,\n  \"force\": false,\n  \"cooldown_seconds\": 600,\n  \"cooldown_remaining\": 0,\n  \"healthy_vpn_slots\": 5,\n  \"commit_enabled\": true,\n  \"direct_failopen_enabled\": false,\n  \"direct_failopen_action\": \"disabled_not_allowed_in_step050f\",\n  \"helper_ok\": true,\n  \"refresh_cmd\": \"/root/hmn/hmn-refresh-pool-safe.sh\",\n  \"refresh_cmd_exists\": true,\n  \"planner_cmd\": \"/usr/local/sbin/router-egress-hmn-plan-top5.sh\",\n  \"planner_cmd_exists\": true,\n  \"rebalance_apply_cmd\": \"/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh\",\n  \"rebalance_apply_cmd_exists\": true,\n  \"watcher_cmd\": \"/usr/local/sbin/router-egress-health-repair-watch.sh\",\n  \"watcher_cmd_exists\": true,\n  \"last_emergency_refresh_status\": \"NONE\",\n  \"last_emergency_refresh_epoch\": 0\n}\n__JSON_END__ runner_pre\n__JSON_BEGIN__ hook_pre\n{\n  \"schema\": \"router-egress-emergency-refresh-v1\",\n  \"mode\": \"dry-run\",\n  \"decision\": \"would_run_emergency_refresh\",\n  \"reason\": \"threshold_or_force_reached_no_commit_in_dry_run\",\n  \"daily_fail_count\": 10,\n  \"daily_fail_threshold\": 5,\n  \"threshold_reached\": true,\n  \"force\": false,\n  \"cooldown_seconds\": 600,\n  \"cooldown_remaining\": 0,\n  \"healthy_vpn_slots\": 5,\n  \"commit_enabled\": true,\n  \"direct_failopen_enabled\": false,\n  \"direct_failopen_action\": \"disabled_not_allowed_in_step050f\",\n  \"helper_ok\": true,\n  \"refresh_cmd\": \"/root/hmn/hmn-refresh-pool-safe.sh\",\n  \"refresh_cmd_exists\": true,\n  \"planner_cmd\": \"/usr/local/sbin/router-egress-hmn-plan-top5.sh\",\n  \"planner_cmd_exists\": true,\n  \"rebalance_apply_cmd\": \"/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh\",\n  \"rebalance_apply_cmd_exists\": true,\n  \"watcher_cmd\": \"/usr/local/sbin/router-egress-health-repair-watch.sh\",\n  \"watcher_cmd_exists\": true,\n  \"last_emergency_refresh_status\": \"NONE\",\n  \"last_emergency_refresh_epoch\": 0\n}\n__JSON_END__ hook_pre\n__JSON_BEGIN__ planner_pre\n{\n  \"schema\": \"router-egress-hmn-plan-top5-v2\",\n  \"decision\": \"plan_ok\",\n  \"pool\": \"/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv\",\n  \"pool_mtime_epoch\": 1783702742,\n  \"quarantine_enabled\": true,\n  \"quarantine_excluded_count\": 4,\n  \"duplicate_excluded_count\": 0,\n  \"desired_count\": 5,\n  \"changes_count\": 3,\n  \"plan\": [\n    {\"slot\":\"egress1\",\"iface\":\"vpn1\",\"current\":\"109.248.198.4:37129\",\"target\":\"192.121.163.235:42530\",\"change\":true,\"target_rank\":\"1\",\"target_avg_ms\":\"39.008\"}\n    ,\n    {\"slot\":\"egress2\",\"iface\":\"vpn2\",\"current\":\"151.236.30.139:33998\",\"target\":\"37.235.54.96:38971\",\"change\":true,\"target_rank\":\"7\",\"target_avg_ms\":\"62.926\"}\n    ,\n    {\"slot\":\"egress3\",\"iface\":\"vpn3\",\"current\":\"95.211.68.119:45176\",\"target\":\"95.211.68.119:45176\",\"change\":false,\"target_rank\":\"2\",\"target_avg_ms\":\"44.271\"}\n    ,\n    {\"slot\":\"egress4\",\"iface\":\"vpn4\",\"current\":\"178.215.227.13:44408\",\"target\":\"192.71.244.202:45735\",\"change\":true,\"target_rank\":\"8\",\"target_avg_ms\":\"66.349\"}\n    ,\n    {\"slot\":\"egress5\",\"iface\":\"vpn5\",\"current\":\"157.173.27.69:41797\",\"target\":\"157.173.27.69:41797\",\"change\":false,\"target_rank\":\"5\",\"target_avg_ms\":\"56.803\"}\n  ]\n}\n__JSON_END__ planner_pre\n__FACT__ pre.strict.vpn1=true\n__FACT__ pre.strict.vpn2=true\n__FACT__ pre.strict.vpn3=true\n__FACT__ pre.strict.vpn4=true\n__FACT__ pre.strict.vpn5=true\n__FACT__ pre.strict_all=true\n__BLOCK_BEGIN__ pre_route_201\ndefault dev vpn1 scope link \n__BLOCK_END__ pre_route_201\n__FACT__ pre.route.201=true\n__BLOCK_BEGIN__ pre_route_202\ndefault dev vpn2 scope link \n__BLOCK_END__ pre_route_202\n__FACT__ pre.route.202=true\n__BLOCK_BEGIN__ pre_route_203\ndefault dev vpn3 scope link \n__BLOCK_END__ pre_route_203\n__FACT__ pre.route.203=true\n__BLOCK_BEGIN__ pre_route_204\ndefault dev vpn4 scope link \n__BLOCK_END__ pre_route_204\n__FACT__ pre.route.204=true\n__BLOCK_BEGIN__ pre_route_205\ndefault dev vpn5 scope link \n__BLOCK_END__ pre_route_205\n__FACT__ pre.route.205=true\n__FACT__ pre.routes_all=true\n__TRACE__ stage=backup\n__FACT__ hook_was_running=true\n__FACT__ watcher_was_running=true\n__FACT__ rollback=/root/rollback-step050m07b2-20260711-191743-10787.sh\n__FACT__ backup_root=/root/step050m07b2-backup-20260711-191743-10787\n__FACT__ rollback_exists=true\n__TRACE__ stage=isolate_services\n__FACT__ watcher_stopped=true\n__FACT__ hook_stopped=true\n__TRACE__ stage=normalize_boolean\n__FACT__ mutation_started=true\n__FACT__ commit_raw_post=true\n__TRACE__ stage=execute_real_runner\n__FACT__ emergency_log=/var/log/router-egress-emergency-refresh.log\n__FACT__ emergency_log_size_pre=0\n__FACT__ runner_commit_rc=0\n__JSON_BEGIN__ runner_commit\n{\n  \"schema\": \"router-egress-emergency-refresh-v1\",\n  \"mode\": \"commit\",\n  \"decision\": \"refresh_ok_rebalance_ok\",\n  \"reason\": \"fresh_pool_and_top5_rebalance_completed\",\n  \"daily_fail_count\": 10,\n  \"daily_fail_threshold\": 5,\n  \"threshold_reached\": true,\n  \"force\": false,\n  \"cooldown_seconds\": 600,\n  \"cooldown_remaining\": 0,\n  \"healthy_vpn_slots\": 5,\n  \"commit_enabled\": true,\n  \"direct_failopen_enabled\": false,\n  \"direct_failopen_action\": \"disabled_not_allowed_in_step050f\",\n  \"helper_ok\": true,\n  \"refresh_cmd\": \"/root/hmn/hmn-refresh-pool-safe.sh\",\n  \"refresh_cmd_exists\": true,\n  \"planner_cmd\": \"/usr/local/sbin/router-egress-hmn-plan-top5.sh\",\n  \"planner_cmd_exists\": true,\n  \"rebalance_apply_cmd\": \"/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh\",\n  \"rebalance_apply_cmd_exists\": true,\n  \"watcher_cmd\": \"/usr/local/sbin/router-egress-health-repair-watch.sh\",\n  \"watcher_cmd_exists\": true,\n  \"last_emergency_refresh_status\": \"refresh_ok_rebalance_ok\",\n  \"last_emergency_refresh_epoch\": 1783797471\n}\n__JSON_END__ runner_commit\n__BLOCK_BEGIN__ runner_commit_stderr\n\n__BLOCK_END__ runner_commit_stderr\n__FACT__ refresh_ran=true\n__FACT__ rebalance_apply_ran=true\n__TRACE__ stage=restore_services\n__FACT__ hook_restored=true\n__FACT__ watcher_restored=true\n__FACT__ hook_enabled=true\n__FACT__ watcher_enabled=true\n__TRACE__ stage=post_state\n__FACT__ repair_counter_post=10\n__FACT__ pool_hash_post=53ea2fb7535791652f85f86a4dadd619d365da2e704e396bd5e8005f65902025\n__FACT__ pool_mtime_post=1783798139\n__FACT__ network_hash_post=58096bf39b61ec5f554a7aafbf41af70d44fd6940f200a113c3b0ad8adcb5983\n__FACT__ state_mode_post=NORMAL\n__FACT__ state_status_post=refresh_ok_rebalance_ok\n__FACT__ state_epoch_post=1783797471\n__JSON_BEGIN__ runner_post\n{\n  \"schema\": \"router-egress-emergency-refresh-v1\",\n  \"mode\": \"dry-run\",\n  \"decision\": \"would_run_emergency_refresh\",\n  \"reason\": \"threshold_or_force_reached_no_commit_in_dry_run\",\n  \"daily_fail_count\": 10,\n  \"daily_fail_threshold\": 5,\n  \"threshold_reached\": true,\n  \"force\": false,\n  \"cooldown_seconds\": 600,\n  \"cooldown_remaining\": 0,\n  \"healthy_vpn_slots\": 5,\n  \"commit_enabled\": true,\n  \"direct_failopen_enabled\": false,\n  \"direct_failopen_action\": \"disabled_not_allowed_in_step050f\",\n  \"helper_ok\": true,\n  \"refresh_cmd\": \"/root/hmn/hmn-refresh-pool-safe.sh\",\n  \"refresh_cmd_exists\": true,\n  \"planner_cmd\": \"/usr/local/sbin/router-egress-hmn-plan-top5.sh\",\n  \"planner_cmd_exists\": true,\n  \"rebalance_apply_cmd\": \"/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh\",\n  \"rebalance_apply_cmd_exists\": true,\n  \"watcher_cmd\": \"/usr/local/sbin/router-egress-health-repair-watch.sh\",\n  \"watcher_cmd_exists\": true,\n  \"last_emergency_refresh_status\": \"refresh_ok_rebalance_ok\",\n  \"last_emergency_refresh_epoch\": 1783797471\n}\n__JSON_END__ runner_post\n__JSON_BEGIN__ hook_post\n{\n  \"schema\": \"router-egress-emergency-refresh-v1\",\n  \"mode\": \"dry-run\",\n  \"decision\": \"would_run_emergency_refresh\",\n  \"reason\": \"threshold_or_force_reached_no_commit_in_dry_run\",\n  \"daily_fail_count\": 10,\n  \"daily_fail_threshold\": 5,\n  \"threshold_reached\": true,\n  \"force\": false,\n  \"cooldown_seconds\": 600,\n  \"cooldown_remaining\": 0,\n  \"healthy_vpn_slots\": 5,\n  \"commit_enabled\": true,\n  \"direct_failopen_enabled\": false,\n  \"direct_failopen_action\": \"disabled_not_allowed_in_step050f\",\n  \"helper_ok\": true,\n  \"refresh_cmd\": \"/root/hmn/hmn-refresh-pool-safe.sh\",\n  \"refresh_cmd_exists\": true,\n  \"planner_cmd\": \"/usr/local/sbin/router-egress-hmn-plan-top5.sh\",\n  \"planner_cmd_exists\": true,\n  \"rebalance_apply_cmd\": \"/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh\",\n  \"rebalance_apply_cmd_exists\": true,\n  \"watcher_cmd\": \"/usr/local/sbin/router-egress-health-repair-watch.sh\",\n  \"watcher_cmd_exists\": true,\n  \"last_emergency_refresh_status\": \"refresh_ok_rebalance_ok\",\n  \"last_emergency_refresh_epoch\": 1783797471\n}\n__JSON_END__ hook_post\n__JSON_BEGIN__ planner_post\n{\n  \"schema\": \"router-egress-hmn-plan-top5-v2\",\n  \"decision\": \"plan_ok\",\n  \"pool\": \"/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv\",\n  \"pool_mtime_epoch\": 1783798139,\n  \"quarantine_enabled\": true,\n  \"quarantine_excluded_count\": 0,\n  \"duplicate_excluded_count\": 0,\n  \"desired_count\": 5,\n  \"changes_count\": 0,\n  \"plan\": [\n    {\"slot\":\"egress1\",\"iface\":\"vpn1\",\"current\":\"192.121.163.235:42530\",\"target\":\"192.121.163.235:42530\",\"change\":false,\"target_rank\":\"1\",\"target_avg_ms\":\"39.100\"}\n    ,\n    {\"slot\":\"egress2\",\"iface\":\"vpn2\",\"current\":\"185.14.97.234:37492\",\"target\":\"185.14.97.234:37492\",\"change\":false,\"target_rank\":\"5\",\"target_avg_ms\":\"60.249\"}\n    ,\n    {\"slot\":\"egress3\",\"iface\":\"vpn3\",\"current\":\"95.211.68.119:45176\",\"target\":\"95.211.68.119:45176\",\"change\":false,\"target_rank\":\"2\",\"target_avg_ms\":\"45.674\"}\n    ,\n    {\"slot\":\"egress4\",\"iface\":\"vpn4\",\"current\":\"178.215.227.13:44408\",\"target\":\"178.215.227.13:44408\",\"change\":false,\"target_rank\":\"3\",\"target_avg_ms\":\"51.096\"}\n    ,\n    {\"slot\":\"egress5\",\"iface\":\"vpn5\",\"current\":\"157.173.27.69:41797\",\"target\":\"157.173.27.69:41797\",\"change\":false,\"target_rank\":\"4\",\"target_avg_ms\":\"58.883\"}\n  ]\n}\n__JSON_END__ planner_post\n__FACT__ post.strict.vpn1=true\n__FACT__ post.strict.vpn2=true\n__FACT__ post.strict.vpn3=true\n__FACT__ post.strict.vpn4=true\n__FACT__ post.strict.vpn5=true\n__FACT__ post.strict_all=true\n__BLOCK_BEGIN__ post_route_201\ndefault dev vpn1 scope link \n__BLOCK_END__ post_route_201\n__FACT__ post.route.201=true\n__BLOCK_BEGIN__ post_route_202\ndefault dev vpn2 scope link \n__BLOCK_END__ post_route_202\n__FACT__ post.route.202=true\n__BLOCK_BEGIN__ post_route_203\ndefault dev vpn3 scope link \n__BLOCK_END__ post_route_203\n__FACT__ post.route.203=true\n__BLOCK_BEGIN__ post_route_204\ndefault dev vpn4 scope link \n__BLOCK_END__ post_route_204\n__FACT__ post.route.204=true\n__BLOCK_BEGIN__ post_route_205\ndefault dev vpn5 scope link \n__BLOCK_END__ post_route_205\n__FACT__ post.route.205=true\n__FACT__ post.routes_all=true\n__FACT__ emergency_log_size_post=21737\n__BLOCK_BEGIN__ emergency_log_tail\n[16/35] 108-HU-Hungary-Budapest-S6-89.46.237.14-awg1.conf\n  endpoint: 89.46.237.14:38594\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=78.069\n\n[17/35] 114-PS-UAE-Dubai-103.57.251.39-awg1.conf\n  endpoint: 103.57.251.39:37380\n  status=FAIL_NO_HANDSHAKE loss=9.9.9.9:100%,1.1.1.1:100% avg=-\n\n[18/35] 115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf\n  endpoint: 185.14.97.234:37492\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=60.249\n\n[19/35] 117-US-USA-New-York-City-S3-64.253.89.235-awg1.conf\n  endpoint: 64.253.89.235:37402\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=144.048\n\n[20/35] 118-RU-Russia-Moscow-S5-141.98.189.83-awg1.conf\n  endpoint: 141.98.189.83:39408\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=85.370\n\n[21/35] 128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\n  endpoint: 192.121.163.235:42530\n  endpoint already UP on vpn2; testing existing interface, not starting duplicate\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=39.100\n\n[22/35] 129-CH-Switzerland-Zurich-S2-89.46.232.39-awg1.conf\n  endpoint: 89.46.232.39:40316\n  status=FAIL_NO_HANDSHAKE loss=9.9.9.9:100%,1.1.1.1:100% avg=-\n\n[23/35] 133-SE-Sweden-Stockholm-S2-46.246.127.84-awg1.conf\n  endpoint: 46.246.127.84:36230\n  status=FAIL_PING_LOSS loss=9.9.9.9:0%,1.1.1.1:20% avg=63.768\n\n[24/35] 141-RS-Serbia-Belgrade-S2-194.71.126.45-awg1.conf\n  endpoint: 194.71.126.45:32821\n  status=FAIL_NO_HANDSHAKE loss=9.9.9.9:100%,1.1.1.1:100% avg=-\n\n[25/35] 146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf\n  endpoint: 37.235.54.96:38971\n  status=FAIL_PING_LOSS loss=9.9.9.9:20%,1.1.1.1:40% avg=65.111\n\n[26/35] 147-US-USA-Salt-Lake-City-S2-23.158.72.87-awg1.conf\n  endpoint: 23.158.72.87:45460\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=184.249\n\n[27/35] 149-AT-Austria-Vienna-S3-157.173.25.198-awg1.conf\n  endpoint: 157.173.25.198:34340\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=63.183\n\n[28/35] 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\n  endpoint: 178.215.227.13:44408\n  endpoint already UP on vpn1; testing existing interface, not starting duplicate\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=51.096\n\n[29/35] 153-SI-Slovenia-Ljubljana-S3-192.71.244.202-awg1.conf\n  endpoint: 192.71.244.202:45735\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=64.716\n\n[30/35] 162-KZ-Kazakhstan-Karaganda-S1-109.248.198.4-awg1.conf\n  endpoint: 109.248.198.4:37129\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=202.187\n\n[31/35] 180-AT-Austria-Graz-S1-151.236.30.139-awg1.conf\n  endpoint: 151.236.30.139:33998\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=68.127\n\n[32/35] 206-HK-Hong-Kong-Central-District-S2-112.120.98.53-awg1.conf\n  endpoint: 112.120.98.53:46369\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=196.454\n\n[33/35] 214-EE-Estonia-Tallinn-S2-89.40.104.201-awg1.conf\n  endpoint: 89.40.104.201:36979\n  status=FAIL_NO_HANDSHAKE loss=9.9.9.9:100%,1.1.1.1:100% avg=-\n\n[34/35] 218-KZ-Kazakhstan-Almaty-M2-77.67.8.84-awg1.conf\n  endpoint: 77.67.8.84:43378\n  status=FAIL_PING_LOSS loss=9.9.9.9:0%,1.1.1.1:20% avg=162.698\n\n[35/35] 225-IL-Israel-Tel-Aviv-S5-192.71.27.64-awg1.conf\n  endpoint: 192.71.27.64:40044\n  status=OK loss=9.9.9.9:0%,1.1.1.1:0% avg=173.755\n\nГотово.\n\nResults:\n  /root/hmn/test-runs/20260711-191751/results.tsv\n\nSummary:\n  total=35 OK=18 FAIL=17\n\nOK candidates:\n049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf | 157.173.27.69:41797 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=58.883\n062-BE-Belgium-Oostkamp-S7-194.71.227.212-awg1.conf | 194.71.227.212:32583 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=216.277\n063-CL-Chile-Santiago-38.7.197.83-awg1.conf | 38.7.197.83:38465 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=251.667\n073-TR-Turkey-Istanbul-S3-84.32.230.159-awg1.conf | 84.32.230.159:43808 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=71.359\n075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf | 95.211.68.119:45176 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=45.674\n108-HU-Hungary-Budapest-S6-89.46.237.14-awg1.conf | 89.46.237.14:38594 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=78.069\n115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf | 185.14.97.234:37492 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=60.249\n117-US-USA-New-York-City-S3-64.253.89.235-awg1.conf | 64.253.89.235:37402 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=144.048\n118-RU-Russia-Moscow-S5-141.98.189.83-awg1.conf | 141.98.189.83:39408 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=85.370\n128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf | 192.121.163.235:42530 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=39.100\n147-US-USA-Salt-Lake-City-S2-23.158.72.87-awg1.conf | 23.158.72.87:45460 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=184.249\n149-AT-Austria-Vienna-S3-157.173.25.198-awg1.conf | 157.173.25.198:34340 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=63.183\n150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf | 178.215.227.13:44408 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=51.096\n153-SI-Slovenia-Ljubljana-S3-192.71.244.202-awg1.conf | 192.71.244.202:45735 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=64.716\n162-KZ-Kazakhstan-Karaganda-S1-109.248.198.4-awg1.conf | 109.248.198.4:37129 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=202.187\n180-AT-Austria-Graz-S1-151.236.30.139-awg1.conf | 151.236.30.139:33998 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=68.127\n206-HK-Hong-Kong-Central-District-S2-112.120.98.53-awg1.conf | 112.120.98.53:46369 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=196.454\n225-IL-Israel-Tel-Aviv-S5-192.71.27.64-awg1.conf | 192.71.27.64:40044 | loss=9.9.9.9:0%,1.1.1.1:0% | avg=173.755\n\nStrict rejects with ping loss:\n070-CZ-Czech-Republic-Prague-S1-193.235.207.39-awg1.conf | 193.235.207.39:38330 | loss=9.9.9.9:0%,1.1.1.1:20% | avg=66.640\n071-US-USA-Los-Angeles-S2-107.172.187.100-awg1.conf | 107.172.187.100:39480 | loss=9.9.9.9:0%,1.1.1.1:20% | avg=201.061\n072-NL-Netherlands-Amsterdam-S8-78.31.250.16-awg1.conf | 78.31.250.16:41729 | loss=9.9.9.9:20%,1.1.1.1:40% | avg=48.989\n076-IT-Italy-Milan-S3-149.154.157.24-awg1.conf | 149.154.157.24:35090 | loss=9.9.9.9:0%,1.1.1.1:20% | avg=229.548\n087-US-USA-New-York-S1-107.175.93.59-awg1.conf | 107.175.93.59:31095 | loss=9.9.9.9:0%,1.1.1.1:20% | avg=137.499\n088-US-USA-Dallas-107.174.226.51-awg1.conf | 107.174.226.51:44839 | loss=9.9.9.9:0%,1.1.1.1:20% | avg=173.756\n133-SE-Sweden-Stockholm-S2-46.246.127.84-awg1.conf | 46.246.127.84:36230 | loss=9.9.9.9:0%,1.1.1.1:20% | avg=63.768\n146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf | 37.235.54.96:38971 | loss=9.9.9.9:20%,1.1.1.1:40% | avg=65.111\n218-KZ-Kazakhstan-Almaty-M2-77.67.8.84-awg1.conf | 77.67.8.84:43378 | loss=9.9.9.9:0%,1.1.1.1:20% | avg=162.698\n\ntable 200:\n10.200.0.0/24 dev eth1 scope link src 10.200.0.2 \n10.201.0.0/24 dev eth3 scope link src 10.201.0.2 \n\nmain routes touching vpn_test:\ntester_rc=0\n\nresults=/root/hmn/test-runs/20260711-191751/results.tsv\n\nall_ok=18\nforeign_ok=13\n\n=== publish strict tables atomically ===\n\n=== reset runtime bad/quarantine for new validation generation ===\n\n=== selected consistency check, no selected changes here ===\nslot\tfile\tendpoint\tavg_ms\tconfig_path\nvpn2\t128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\t192.121.163.235:42530\t38.879\t/root/hmn/configs/awg1/latest/128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\nvpn1\t150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\t178.215.227.13:44408\t53.234\t/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\n\nvpn1 endpoint 109.248.198.4:37129: OK in current strict foreign table\nvpn2 endpoint 151.236.30.139:33998: OK in current strict foreign table\n\n=== restore active route ===\n\n=== unfreeze and run manager once ===\nmanager_rc=0\n\n=== final state ===\nvpn1\ndefault dev vpn1 scope link \n10.200.0.0/24 dev eth1 scope link src 10.200.0.2 \n10.201.0.0/24 dev eth3 scope link src 10.201.0.2 \n9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 \n    cache \n\n--- strict all head ---\nrank\tfile\tendpoint\tavg_ms\tping_loss\tconfig_path\n1\t128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\t192.121.163.235:42530\t39.100\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\n2\t075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf\t95.211.68.119:45176\t45.674\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf\n3\t150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\t178.215.227.13:44408\t51.096\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\n4\t049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf\t157.173.27.69:41797\t58.883\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf\n5\t115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf\t185.14.97.234:37492\t60.249\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf\n6\t149-AT-Austria-Vienna-S3-157.173.25.198-awg1.conf\t157.173.25.198:34340\t63.183\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/149-AT-Austria-Vienna-S3-157.173.25.198-awg1.conf\n7\t153-SI-Slovenia-Ljubljana-S3-192.71.244.202-awg1.conf\t192.71.244.202:45735\t64.716\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/153-SI-Slovenia-Ljubljana-S3-192.71.244.202-awg1.conf\n8\t180-AT-Austria-Graz-S1-151.236.30.139-awg1.conf\t151.236.30.139:33998\t68.127\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/180-AT-Austria-Graz-S1-151.236.30.139-awg1.conf\n9\t073-TR-Turkey-Istanbul-S3-84.32.230.159-awg1.conf\t84.32.230.159:43808\t71.359\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/073-TR-Turkey-Istanbul-S3-84.32.230.159-awg1.conf\n10\t108-HU-Hungary-Budapest-S6-89.46.237.14-awg1.conf\t89.46.237.14:38594\t78.069\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/108-HU-Hungary-Budapest-S6-89.46.237.14-awg1.conf\n11\t118-RU-Russia-Moscow-S5-141.98.189.83-awg1.conf\t141.98.189.83:39408\t85.370\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/118-RU-Russia-Moscow-S5-141.98.189.83-awg1.conf\n\n--- strict foreign head ---\nrank\tfile\tendpoint\tavg_ms\tping_loss\tconfig_path\n1\t128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\t192.121.163.235:42530\t39.100\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\n2\t075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf\t95.211.68.119:45176\t45.674\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf\n3\t150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\t178.215.227.13:44408\t51.096\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\n4\t049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf\t157.173.27.69:41797\t58.883\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf\n5\t115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf\t185.14.97.234:37492\t60.249\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf\n6\t149-AT-Austria-Vienna-S3-157.173.25.198-awg1.conf\t157.173.25.198:34340\t63.183\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/149-AT-Austria-Vienna-S3-157.173.25.198-awg1.conf\n7\t153-SI-Slovenia-Ljubljana-S3-192.71.244.202-awg1.conf\t192.71.244.202:45735\t64.716\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/153-SI-Slovenia-Ljubljana-S3-192.71.244.202-awg1.conf\n8\t180-AT-Austria-Graz-S1-151.236.30.139-awg1.conf\t151.236.30.139:33998\t68.127\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/180-AT-Austria-Graz-S1-151.236.30.139-awg1.conf\n9\t073-TR-Turkey-Istanbul-S3-84.32.230.159-awg1.conf\t84.32.230.159:43808\t71.359\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/073-TR-Turkey-Istanbul-S3-84.32.230.159-awg1.conf\n10\t108-HU-Hungary-Budapest-S6-89.46.237.14-awg1.conf\t89.46.237.14:38594\t78.069\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/108-HU-Hungary-Budapest-S6-89.46.237.14-awg1.conf\n11\t225-IL-Israel-Tel-Aviv-S5-192.71.27.64-awg1.conf\t192.71.27.64:40044\t173.755\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/225-IL-Israel-Tel-Aviv-S5-192.71.27.64-awg1.conf\n\n--- bad file after reset ---\nbad file empty\n\n=== done validate-current-pool ===\n2026-07-11T19:28:59+00:00 validate_current_pool_rc=0\n2026-07-11T19:28:59+00:00 retry-needed set: fresh_download_failed_rc_1\n\n=== run manager once after validation ===\nSTEP_048M: legacy manager stage quarantined; skipping /usr/bin/vpn-egress-manager.sh\n2026-07-11T19:28:59+00:00 manager_rc=0\n\n=== final state ===\nactive=vpn1\ndefault dev vpn1 scope link \n10.200.0.0/24 dev eth1 scope link src 10.200.0.2 \n10.201.0.0/24 dev eth3 scope link src 10.201.0.2 \n9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 \n    cache \nlatest after: /root/hmn/configs/awg1/20260710-163600\n\n=== refresh status ===\nUSING_OLD_POOL_RETESTED\n2026-07-11T19:28:59+00:00\npool_source=old-after-download-fail\nlast_fresh_download_rc=1\nlast_fresh_download_at=2026-07-11T19:17:51+00:00\nretry_needed_at=2026-07-11T19:28:59+00:00\nretry_reason=fresh_download_failed_rc_1\n\n=== strict foreign head ===\nrank\tfile\tendpoint\tavg_ms\tping_loss\tconfig_path\n1\t128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\t192.121.163.235:42530\t39.100\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\n2\t075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf\t95.211.68.119:45176\t45.674\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf\n3\t150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\t178.215.227.13:44408\t51.096\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\n4\t049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf\t157.173.27.69:41797\t58.883\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf\n5\t115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf\t185.14.97.234:37492\t60.249\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf\n6\t149-AT-Austria-Vienna-S3-157.173.25.198-awg1.conf\t157.173.25.198:34340\t63.183\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/149-AT-Austria-Vienna-S3-157.173.25.198-awg1.conf\n7\t153-SI-Slovenia-Ljubljana-S3-192.71.244.202-awg1.conf\t192.71.244.202:45735\t64.716\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/153-SI-Slovenia-Ljubljana-S3-192.71.244.202-awg1.conf\n8\t180-AT-Austria-Graz-S1-151.236.30.139-awg1.conf\t151.236.30.139:33998\t68.127\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/180-AT-Austria-Graz-S1-151.236.30.139-awg1.conf\n9\t073-TR-Turkey-Istanbul-S3-84.32.230.159-awg1.conf\t84.32.230.159:43808\t71.359\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/073-TR-Turkey-Istanbul-S3-84.32.230.159-awg1.conf\n10\t108-HU-Hungary-Budapest-S6-89.46.237.14-awg1.conf\t89.46.237.14:38594\t78.069\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/108-HU-Hungary-Budapest-S6-89.46.237.14-awg1.conf\n11\t225-IL-Israel-Tel-Aviv-S5-192.71.27.64-awg1.conf\t192.71.27.64:40044\t173.755\t9.9.9.9:0%,1.1.1.1:0%\t/root/hmn/configs/awg1/latest/225-IL-Israel-Tel-Aviv-S5-192.71.27.64-awg1.conf\n\n=== selected cache ===\nslot\tfile\tendpoint\tavg_ms\tconfig_path\nvpn2\t128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\t192.121.163.235:42530\t38.879\t/root/hmn/configs/awg1/latest/128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\nvpn1\t150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\t178.215.227.13:44408\t53.234\t/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\n\n=== bad file today ===\nbad file empty/not present\n2026-07-11T19:28:59+00:00 === hmn-refresh-pool-safe done ===\nwrapper_rc=0\nwrapper_log=/root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log\n{\n  \"schema\": \"router-egress-hmn-rebalance-top5-v1\",\n  \"mode\": \"--commit\",\n  \"decision\": \"commit_ok\",\n  \"reason\": \"changes_applied\",\n  \"pool\": \"/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv\",\n  \"pool_age_sec\": 0,\n  \"pool_endpoint_count\": 13,\n  \"top_count\": 5,\n  \"changes_count\": 2,\n  \"apply_performed\": true,\n  \"apply_ok\": true,\n  \"plan\": [\n    {\"slot\":\"egress1\",\"iface\":\"vpn1\",\"table\":\"201\",\"mark\":\"0x201\",\"dscp\":\"cs4\",\"provider\":\"hidemyname\",\"adapter\":\"hmn_pool_replace\",\"current\":\"109.248.198.4:37129\",\"target\":\"192.121.163.235:42530\",\"change\":true,\"target_rank\":\"1\",\"target_avg_ms\":\"39.100\",\"target_file\":\"128-LV-Latvia-Riga-S1-192.121.163.235-awg1.conf\"},\n    {\"slot\":\"egress2\",\"iface\":\"vpn2\",\"table\":\"202\",\"mark\":\"0x202\",\"dscp\":\"cs5\",\"provider\":\"hidemyname\",\"adapter\":\"hmn_pool_replace\",\"current\":\"151.236.30.139:33998\",\"target\":\"185.14.97.234:37492\",\"change\":true,\"target_rank\":\"5\",\"target_avg_ms\":\"60.249\",\"target_file\":\"115-NO-Norway-Sandefjord-S15-185.14.97.234-awg1.conf\"},\n    {\"slot\":\"egress3\",\"iface\":\"vpn3\",\"table\":\"203\",\"mark\":\"0x203\",\"dscp\":\"cs1\",\"provider\":\"hidemyname\",\"adapter\":\"hmn_pool_replace\",\"current\":\"95.211.68.119:45176\",\"target\":\"95.211.68.119:45176\",\"change\":false,\"target_rank\":\"2\",\"target_avg_ms\":\"45.674\",\"target_file\":\"075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf\"},\n    {\"slot\":\"egress4\",\"iface\":\"vpn4\",\"table\":\"204\",\"mark\":\"0x204\",\"dscp\":\"cs2\",\"provider\":\"hidemyname\",\"adapter\":\"hmn_pool_replace\",\"current\":\"178.215.227.13:44408\",\"target\":\"178.215.227.13:44408\",\"change\":false,\"target_rank\":\"3\",\"target_avg_ms\":\"51.096\",\"target_file\":\"150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf\"},\n    {\"slot\":\"egress5\",\"iface\":\"vpn5\",\"table\":\"205\",\"mark\":\"0x205\",\"dscp\":\"cs3\",\"provider\":\"hidemyname\",\"adapter\":\"hmn_pool_replace\",\"current\":\"157.173.27.69:41797\",\"target\":\"157.173.27.69:41797\",\"change\":false,\"target_rank\":\"4\",\"target_avg_ms\":\"58.883\",\"target_file\":\"049-DE-Germany-Berlin-S7-157.173.27.69-awg1.conf\"}\n  ],\n  \"safety\": {\"commit_requires_confirm\": true, \"per_slot_strict_check\": true, \"per_slot_rollback\": true}\n}\n__BLOCK_END__ emergency_log_tail\n__FACT__ emergency_lock_present=false\n__FACT__ hmn_refresh_lock_present=false\n__FACT__ direct_failopen_changed=false\n__ERROR__ cooldown_not_active\nrollback_done=true\nrollback_done=true\nSTEP_050M07B2 rollback rc=1\n__FACT__ auto_rollback=false\n"
    },
    "vm101-precheck.stderr": {
      "size_bytes": 80,
      "tail": "Warning: Permanently added '10.71.100.2' (ED25519) to the list of known hosts.\n"
    },
    "vm101-rollback.stderr": {
      "size_bytes": 80,
      "tail": "Warning: Permanently added '10.71.100.2' (ED25519) to the list of known hosts.\n"
    },
    "vm101-tool-hash-check.stderr": {
      "size_bytes": 80,
      "tail": "Warning: Permanently added '10.71.100.2' (ED25519) to the list of known hosts.\n"
    },
    "vm101.stderr": {
      "size_bytes": 80,
      "tail": "Warning: Permanently added '10.71.100.2' (ED25519) to the list of known hosts.\n"
    }
  },
  "artifacts_present": [
    "diagnostic.json",
    "progress.log",
    "sources/step050m07a2-exact-source-contract.json",
    "sources/step050m07b-diagnostic.json",
    "sources/step050m07b-step.sh",
    "sources/step050m07b-vm101.txt",
    "step.sh",
    "vm101-precheck.sh",
    "vm101-precheck.stderr",
    "vm101-precheck.txt",
    "vm101-rollback.stderr",
    "vm101-rollback.txt",
    "vm101-tool-hash-check.sh",
    "vm101-tool-hash-check.stderr",
    "vm101-tool-hash-check.txt",
    "vm101.sh",
    "vm101.stderr",
    "vm101.txt"
  ],
  "recommended_next_step": "Использовать automatic_classification, assessment.json, vm101-precheck.*, vm101.*, vm101-postcheck.* и rollback-файлы из этого же отчёта. Отдельный диагностический STEP не требуется.",
  "publish": {
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-191741_step050m07b2_normalize_commit_and_run_full_refresh/",
    "report_txt": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-191741_step050m07b2_normalize_commit_and_run_full_refresh/report.txt",
    "facts_json": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-191741_step050m07b2_normalize_commit_and_run_full_refresh/facts.json",
    "architecture_plan": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-181158_local_architecture_plan_vm101_autonomous_hmn_recovery/",
    "xs_map": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-120734_xs_map_audit_repair_publish/",
    "global_project_plan": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260711-123348_global_project_plan_wg_paid/"
  }
}
