{
  "assessment": {
    "all_ok": true,
    "interpretation": "VM100 reboot recovery is clean; 042F STOP was caused by reboot command/harness hang after Ctrl-C, not by dataplane/control-plane state",
    "success_checks": {
      "manual_direct_agent_service_start_not_used": true,
      "previous_042f_hung_reboot_command_not_state_failure": true,
      "private_material_not_published": true,
      "pve_vm100_running": true,
      "vm100_peer_count_five": true,
      "vm100_selector_count_five": true,
      "vm100_selector_enabled": true,
      "vm100_selector_status_ok": true,
      "vm100_ssh_ok": true,
      "vm100_uci_empty": true,
      "vm101_legacy_table200_vpn1_ok": true,
      "vm101_table201_vpn1_ok": true,
      "vm101_table202_vpn2_ok": true,
      "vm101_table203_vpn3_ok": true,
      "vm101_table204_vpn4_ok": true,
      "vm101_table205_vpn5_ok": true,
      "vm121_backend_health_ok": true,
      "vm121_enabled_peer_count_five": true,
      "vm121_pending_global_zero": true,
      "vm121_reconcile_timer_active": true,
      "vm121_watcher_active": true
    }
  },
  "changes": {
    "manual_direct_agent_service_start_used": "NO",
    "private_material_published": "NO",
    "vm100_changed": "NO",
    "vm101_changed": "NO",
    "vm121_changed": "NO"
  },
  "mode": "READONLY_CLOSE_042F_AS_HARNESS_HANG_NOT_STATE_FAILURE",
  "previous_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260709-105350_step042f_vm100_reboot_recovery_reconcile_test/",
  "publish": {
    "local_report": "http://127.0.0.1:8099/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260709-110112_step042f2_close_reboot_recovery_after_hung_reboot_cmd/",
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260709-110112_step042f2_close_reboot_recovery_after_hung_reboot_cmd/"
  },
  "pve_vm100_status_raw": "pve_date=2026-07-09T14:01:11+03:00\nstatus: running\nname: VM100-OpenWRT-core\nonboot: 1\nstartup: order=10,up=30,down=30\n",
  "schema": "router-step-facts-v1",
  "step": "STEP_042F2_CLOSE_REBOOT_RECOVERY_AFTER_HUNG_REBOOT_CMD",
  "vm100_raw": "vm100_date=2026-07-09T11:01:15+00:00\nvm100_uptime= 11:01:15 up 7 min,  load average: 0.00, 0.00, 0.00\nvm100_peer_count=5\nvm100_selector_count=5\nvm100_uci_count=0\nvm100_selector_enabled_rc=0\nvm100_selector_status_rc=0\nHknQ+VpqOIvsd3RxkrgaUqiR7zkS9nMfDRzDAvdqUVw=\t10.253.1.12/32\nJQXornv9vzH7nn9E1laZehYLnwMXuitP+eP35Gde0D4=\t10.253.1.13/32\nKl5Ox5HbG4yvDUxkRuoyZmAF3Wx5HW0lHbVS9B0vFXM=\t10.253.1.14/32\nfmcqSUy1fErBV5RrcoVoex2VAgaxz2i79GzK8qd88UI=\t10.253.1.10/32\nzwzkWJkpX7q5PfcT9pG2v52Es4yM0VRP3w1drj7LJmw=\t10.253.1.11/32\n",
  "vm101_raw": "table201: default dev vpn1 scope link \ntable202: default dev vpn2 scope link \ntable203: default dev vpn3 scope link \ntable204: default dev vpn4 scope link \ntable205: default dev vpn5 scope link \ntable200: default dev vpn1 scope link \ntable200: 10.200.0.0/24 dev eth1 scope link src 10.200.0.2 \ntable200: 10.201.0.0/24 dev eth3 scope link src 10.201.0.2 \nvm101_table201_vpn1_rc=0\nvm101_table202_vpn2_rc=0\nvm101_table203_vpn3_rc=0\nvm101_table204_vpn4_rc=0\nvm101_table205_vpn5_rc=0\nvm101_table200_vpn1_rc=0\n",
  "vm121": {
    "changes": {
      "manual_direct_agent_service_start_used": "NO",
      "private_material_published": "NO",
      "vm100_changed": "NO",
      "vm101_changed": "NO",
      "vm121_changed": "NO"
    },
    "db": {
      "enabled_ips": [
        "10.253.1.10",
        "10.253.1.11",
        "10.253.1.12",
        "10.253.1.13",
        "10.253.1.14"
      ],
      "enabled_peer_count": 5,
      "enabled_peer_count_query": {
        "rc": 0,
        "stderr": "",
        "stdout": "5"
      },
      "pending_global": 0,
      "pending_query": {
        "rc": 0,
        "stderr": "",
        "stdout": "0"
      },
      "pg_container": "wgaccess-postgres"
    },
    "errors": [],
    "journals": {
      "agent_tail": ":53:07 wg-access-dev wg_access_agent.py[152090]:   endpoint: 10.71.100.2:35150\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]:   allowed ips: 10.253.1.11/32\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]:   latest handshake: 20 hours, 56 minutes, 18 seconds ago\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]:   transfer: 1.35 KiB received, 6.96 KiB sent\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]: peer: fmcqSUy1fErBV5RrcoVoex2VAgaxz2i79GzK8qd88UI=\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]:   preshared key: (hidden)\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]:   endpoint: 10.71.100.2:40520\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]:   allowed ips: 10.253.1.10/32\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]:   latest handshake: 21 hours, 47 minutes, 37 seconds ago\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]:   transfer: 3.38 KiB received, 17.40 KiB sent\nJul 09 10:53:07 wg-access-dev wg_access_agent.py[152090]: [2026-07-09T10:53:07.415416+00:00] no pending jobs\nJul 09 10:53:07 wg-access-dev systemd[1]: wg-access-agent.service: Deactivated successfully.\nJul 09 10:53:07 wg-access-dev systemd[1]: Finished wg-access-agent.service - WG Access Agent real poller.\nJul 09 10:55:29 wg-access-dev systemd[1]: Starting wg-access-agent.service - WG Access Agent real poller...\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:29.528979+00:00] sync desired enabled peers: 5\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:29.730517+00:00] sync current runtime peers: 0\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:29.943641+00:00] sync set peer tunnel_ip=10.253.1.10\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:30.153250+00:00] sync set peer tunnel_ip=10.253.1.11\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:30.470292+00:00] sync set peer tunnel_ip=10.253.1.12\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:30.796331+00:00] sync set peer tunnel_ip=10.253.1.13\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:30.970583+00:00] sync set peer tunnel_ip=10.253.1.14\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:31.135429+00:00] remote stdout: interface: wg_paid\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   public key: FD1J+KVZ965pCjgtO0YWxJsKANY9uz6v1P54JLkiZzY=\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   private key: (hidden)\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   listening port: 51830\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: peer: fmcqSUy1fErBV5RrcoVoex2VAgaxz2i79GzK8qd88UI=\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   preshared key: (hidden)\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   allowed ips: 10.253.1.10/32\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: peer: zwzkWJkpX7q5PfcT9pG2v52Es4yM0VRP3w1drj7LJmw=\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   preshared key: (hidden)\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   allowed ips: 10.253.1.11/32\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: peer: HknQ+VpqOIvsd3RxkrgaUqiR7zkS9nMfDRzDAvdqUVw=\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   preshared key: (hidden)\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   allowed ips: 10.253.1.12/32\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: peer: JQXornv9vzH7nn9E1laZehYLnwMXuitP+eP35Gde0D4=\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   preshared key: (hidden)\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   allowed ips: 10.253.1.13/32\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: peer: Kl5Ox5HbG4yvDUxkRuoyZmAF3Wx5HW0lHbVS9B0vFXM=\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   preshared key: (hidden)\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]:   allowed ips: 10.253.1.14/32\nJul 09 10:55:31 wg-access-dev wg_access_agent.py[152500]: [2026-07-09T10:55:31.140750+00:00] no pending jobs\nJul 09 10:55:31 wg-access-dev systemd[1]: wg-access-agent.service: Deactivated successfully.\nJul 09 10:55:31 wg-access-dev systemd[1]: Finished wg-access-agent.service - WG Access Agent real poller.\nJul 09 10:58:29 wg-access-dev systemd[1]: Starting wg-access-agent.service - WG Access Agent real poller...\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:29.611731+00:00] sync desired enabled peers: 5\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:29.879786+00:00] remote stdout: fmcqSUy1fErBV5RrcoVoex2VAgaxz2i79GzK8qd88UI=        10.253.1.10/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: zwzkWJkpX7q5PfcT9pG2v52Es4yM0VRP3w1drj7LJmw=        10.253.1.11/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: HknQ+VpqOIvsd3RxkrgaUqiR7zkS9nMfDRzDAvdqUVw=        10.253.1.12/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: JQXornv9vzH7nn9E1laZehYLnwMXuitP+eP35Gde0D4=        10.253.1.13/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: Kl5Ox5HbG4yvDUxkRuoyZmAF3Wx5HW0lHbVS9B0vFXM=        10.253.1.14/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:29.879882+00:00] sync current runtime peers: 5\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:29.879946+00:00] sync keep peer tunnel_ip=10.253.1.10\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:29.879998+00:00] sync keep peer tunnel_ip=10.253.1.11\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:29.880051+00:00] sync keep peer tunnel_ip=10.253.1.12\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:29.880100+00:00] sync keep peer tunnel_ip=10.253.1.13\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:29.880153+00:00] sync keep peer tunnel_ip=10.253.1.14\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:30.186923+00:00] remote stdout: interface: wg_paid\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   public key: FD1J+KVZ965pCjgtO0YWxJsKANY9uz6v1P54JLkiZzY=\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   private key: (hidden)\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   listening port: 51830\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: peer: fmcqSUy1fErBV5RrcoVoex2VAgaxz2i79GzK8qd88UI=\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   preshared key: (hidden)\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   allowed ips: 10.253.1.10/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: peer: zwzkWJkpX7q5PfcT9pG2v52Es4yM0VRP3w1drj7LJmw=\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   preshared key: (hidden)\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   allowed ips: 10.253.1.11/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: peer: HknQ+VpqOIvsd3RxkrgaUqiR7zkS9nMfDRzDAvdqUVw=\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   preshared key: (hidden)\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   allowed ips: 10.253.1.12/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: peer: JQXornv9vzH7nn9E1laZehYLnwMXuitP+eP35Gde0D4=\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   preshared key: (hidden)\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   allowed ips: 10.253.1.13/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: peer: Kl5Ox5HbG4yvDUxkRuoyZmAF3Wx5HW0lHbVS9B0vFXM=\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   preshared key: (hidden)\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]:   allowed ips: 10.253.1.14/32\nJul 09 10:58:30 wg-access-dev wg_access_agent.py[152863]: [2026-07-09T10:58:30.191392+00:00] no pending jobs\nJul 09 10:58:30 wg-access-dev systemd[1]: wg-access-agent.service: Deactivated successfully.\nJul 09 10:58:30 wg-access-dev systemd[1]: Finished wg-access-agent.service - WG Access Agent real poller.\nJul 09 10:59:15 wg-access-dev systemd[1]: Starting wg-access-agent.service - WG Access Agent real poller...\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:15.604911+00:00] sync desired enabled peers: 5\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.076659+00:00] remote stdout: fmcqSUy1fErBV5RrcoVoex2VAgaxz2i79GzK8qd88UI=        10.253.1.10/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: zwzkWJkpX7q5PfcT9pG2v52Es4yM0VRP3w1drj7LJmw=        10.253.1.11/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: HknQ+VpqOIvsd3RxkrgaUqiR7zkS9nMfDRzDAvdqUVw=        10.253.1.12/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: JQXornv9vzH7nn9E1laZehYLnwMXuitP+eP35Gde0D4=        10.253.1.13/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: Kl5Ox5HbG4yvDUxkRuoyZmAF3Wx5HW0lHbVS9B0vFXM=        10.253.1.14/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.076757+00:00] sync current runtime peers: 5\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.076821+00:00] sync keep peer tunnel_ip=10.253.1.10\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.076874+00:00] sync keep peer tunnel_ip=10.253.1.11\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.076927+00:00] sync keep peer tunnel_ip=10.253.1.12\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.076976+00:00] sync keep peer tunnel_ip=10.253.1.13\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.077029+00:00] sync keep peer tunnel_ip=10.253.1.14\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.284088+00:00] remote stdout: interface: wg_paid\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   public key: FD1J+KVZ965pCjgtO0YWxJsKANY9uz6v1P54JLkiZzY=\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   private key: (hidden)\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   listening port: 51830\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: peer: fmcqSUy1fErBV5RrcoVoex2VAgaxz2i79GzK8qd88UI=\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   preshared key: (hidden)\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   allowed ips: 10.253.1.10/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: peer: zwzkWJkpX7q5PfcT9pG2v52Es4yM0VRP3w1drj7LJmw=\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   preshared key: (hidden)\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   allowed ips: 10.253.1.11/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: peer: HknQ+VpqOIvsd3RxkrgaUqiR7zkS9nMfDRzDAvdqUVw=\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   preshared key: (hidden)\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   allowed ips: 10.253.1.12/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: peer: JQXornv9vzH7nn9E1laZehYLnwMXuitP+eP35Gde0D4=\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   preshared key: (hidden)\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   allowed ips: 10.253.1.13/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: peer: Kl5Ox5HbG4yvDUxkRuoyZmAF3Wx5HW0lHbVS9B0vFXM=\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   preshared key: (hidden)\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]:   allowed ips: 10.253.1.14/32\nJul 09 10:59:16 wg-access-dev wg_access_agent.py[152965]: [2026-07-09T10:59:16.289153+00:00] no pending jobs\nJul 09 10:59:16 wg-access-dev systemd[1]: wg-access-agent.service: Deactivated successfully.\nJul 09 10:59:16 wg-access-dev systemd[1]: Finished wg-access-agent.service - WG Access Agent real poller.",
      "reconcile_tail": "Jul 09 10:34:22 wg-access-dev systemd[1]: Starting wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB...\nJul 09 10:34:22 wg-access-dev wg-access-reconcile-now.sh[146286]: [wg-access-reconcile] start 2026-07-09T10:34:22+00:00\nJul 09 10:34:22 wg-access-dev wg-access-reconcile-now.sh[146286]: [wg-access-reconcile] source=systemd-reconcile-service\nJul 09 10:34:23 wg-access-dev wg-access-reconcile-now.sh[146297]: Result=success\nJul 09 10:34:23 wg-access-dev wg-access-reconcile-now.sh[146297]: ExecMainStartTimestamp=Thu 2026-07-09 10:34:22 UTC\nJul 09 10:34:23 wg-access-dev wg-access-reconcile-now.sh[146297]: ExecMainExitTimestamp=Thu 2026-07-09 10:34:23 UTC\nJul 09 10:34:23 wg-access-dev wg-access-reconcile-now.sh[146297]: ExecMainStatus=0\nJul 09 10:34:23 wg-access-dev wg-access-reconcile-now.sh[146286]: [wg-access-reconcile] done 2026-07-09T10:34:23+00:00\nJul 09 10:34:23 wg-access-dev systemd[1]: wg-access-reconcile.service: Deactivated successfully.\nJul 09 10:34:23 wg-access-dev systemd[1]: Finished wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB.\nJul 09 10:39:44 wg-access-dev systemd[1]: Starting wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB...\nJul 09 10:39:44 wg-access-dev wg-access-reconcile-now.sh[147941]: [wg-access-reconcile] start 2026-07-09T10:39:44+00:00\nJul 09 10:39:44 wg-access-dev wg-access-reconcile-now.sh[147941]: [wg-access-reconcile] source=systemd-reconcile-service\nJul 09 10:39:44 wg-access-dev wg-access-reconcile-now.sh[147949]: Result=success\nJul 09 10:39:44 wg-access-dev wg-access-reconcile-now.sh[147949]: ExecMainStartTimestamp=Thu 2026-07-09 10:39:44 UTC\nJul 09 10:39:44 wg-access-dev wg-access-reconcile-now.sh[147949]: ExecMainExitTimestamp=Thu 2026-07-09 10:39:44 UTC\nJul 09 10:39:44 wg-access-dev wg-access-reconcile-now.sh[147949]: ExecMainStatus=0\nJul 09 10:39:44 wg-access-dev wg-access-reconcile-now.sh[147941]: [wg-access-reconcile] done 2026-07-09T10:39:44+00:00\nJul 09 10:39:44 wg-access-dev systemd[1]: wg-access-reconcile.service: Deactivated successfully.\nJul 09 10:39:44 wg-access-dev systemd[1]: Finished wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB.\nJul 09 10:44:59 wg-access-dev systemd[1]: Starting wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB...\nJul 09 10:44:59 wg-access-dev wg-access-reconcile-now.sh[149760]: [wg-access-reconcile] start 2026-07-09T10:44:59+00:00\nJul 09 10:44:59 wg-access-dev wg-access-reconcile-now.sh[149760]: [wg-access-reconcile] source=systemd-reconcile-service\nJul 09 10:44:59 wg-access-dev wg-access-reconcile-now.sh[149768]: Result=success\nJul 09 10:44:59 wg-access-dev wg-access-reconcile-now.sh[149768]: ExecMainStartTimestamp=Thu 2026-07-09 10:44:59 UTC\nJul 09 10:44:59 wg-access-dev wg-access-reconcile-now.sh[149768]: ExecMainExitTimestamp=Thu 2026-07-09 10:44:59 UTC\nJul 09 10:44:59 wg-access-dev wg-access-reconcile-now.sh[149768]: ExecMainStatus=0\nJul 09 10:44:59 wg-access-dev wg-access-reconcile-now.sh[149760]: [wg-access-reconcile] done 2026-07-09T10:44:59+00:00\nJul 09 10:44:59 wg-access-dev systemd[1]: wg-access-reconcile.service: Deactivated successfully.\nJul 09 10:44:59 wg-access-dev systemd[1]: Finished wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB.\nJul 09 10:50:06 wg-access-dev systemd[1]: Starting wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB...\nJul 09 10:50:06 wg-access-dev wg-access-reconcile-now.sh[151339]: [wg-access-reconcile] start 2026-07-09T10:50:06+00:00\nJul 09 10:50:06 wg-access-dev wg-access-reconcile-now.sh[151339]: [wg-access-reconcile] source=systemd-reconcile-service\nJul 09 10:50:06 wg-access-dev wg-access-reconcile-now.sh[151348]: Result=success\nJul 09 10:50:06 wg-access-dev wg-access-reconcile-now.sh[151348]: ExecMainStartTimestamp=Thu 2026-07-09 10:50:06 UTC\nJul 09 10:50:06 wg-access-dev wg-access-reconcile-now.sh[151348]: ExecMainExitTimestamp=Thu 2026-07-09 10:50:06 UTC\nJul 09 10:50:06 wg-access-dev wg-access-reconcile-now.sh[151348]: ExecMainStatus=0\nJul 09 10:50:06 wg-access-dev wg-access-reconcile-now.sh[151339]: [wg-access-reconcile] done 2026-07-09T10:50:06+00:00\nJul 09 10:50:06 wg-access-dev systemd[1]: wg-access-reconcile.service: Deactivated successfully.\nJul 09 10:50:06 wg-access-dev systemd[1]: Finished wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB.\nJul 09 10:55:29 wg-access-dev systemd[1]: Starting wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB...\nJul 09 10:55:29 wg-access-dev wg-access-reconcile-now.sh[152495]: [wg-access-reconcile] start 2026-07-09T10:55:29+00:00\nJul 09 10:55:29 wg-access-dev wg-access-reconcile-now.sh[152495]: [wg-access-reconcile] source=systemd-reconcile-service\nJul 09 10:55:31 wg-access-dev wg-access-reconcile-now.sh[152508]: Result=success\nJul 09 10:55:31 wg-access-dev wg-access-reconcile-now.sh[152508]: ExecMainStartTimestamp=Thu 2026-07-09 10:55:29 UTC\nJul 09 10:55:31 wg-access-dev wg-access-reconcile-now.sh[152508]: ExecMainExitTimestamp=Thu 2026-07-09 10:55:31 UTC\nJul 09 10:55:31 wg-access-dev wg-access-reconcile-now.sh[152508]: ExecMainStatus=0\nJul 09 10:55:31 wg-access-dev wg-access-reconcile-now.sh[152495]: [wg-access-reconcile] done 2026-07-09T10:55:31+00:00\nJul 09 10:55:31 wg-access-dev systemd[1]: wg-access-reconcile.service: Deactivated successfully.\nJul 09 10:55:31 wg-access-dev systemd[1]: Finished wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB.\nJul 09 10:59:15 wg-access-dev systemd[1]: Starting wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB...\nJul 09 10:59:15 wg-access-dev wg-access-reconcile-now.sh[152960]: [wg-access-reconcile] start 2026-07-09T10:59:15+00:00\nJul 09 10:59:15 wg-access-dev wg-access-reconcile-now.sh[152960]: [wg-access-reconcile] source=systemd-reconcile-service\nJul 09 10:59:16 wg-access-dev wg-access-reconcile-now.sh[152968]: Result=success\nJul 09 10:59:16 wg-access-dev wg-access-reconcile-now.sh[152968]: ExecMainStartTimestamp=Thu 2026-07-09 10:59:15 UTC\nJul 09 10:59:16 wg-access-dev wg-access-reconcile-now.sh[152968]: ExecMainExitTimestamp=Thu 2026-07-09 10:59:16 UTC\nJul 09 10:59:16 wg-access-dev wg-access-reconcile-now.sh[152968]: ExecMainStatus=0\nJul 09 10:59:16 wg-access-dev wg-access-reconcile-now.sh[152960]: [wg-access-reconcile] done 2026-07-09T10:59:16+00:00\nJul 09 10:59:16 wg-access-dev systemd[1]: wg-access-reconcile.service: Deactivated successfully.\nJul 09 10:59:16 wg-access-dev systemd[1]: Finished wg-access-reconcile.service - WG Access reconcile VM100 runtime peers from VM121 DB.",
      "watcher_tail": "Jul 09 10:37:59 wg-access-dev systemd[1]: Started wg-access-trigger-watch.service - WG Access host-side trigger watcher.\nJul 09 10:37:59 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:37:59Z] wg-access-trigger-watch: initialized seen set with existing_events=0\nJul 09 10:40:23 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:40:23Z] wg-access-trigger-watch: new_events=1 first=host-test-1783593622592192232.trigger:131091:1783593622588056744:20\nJul 09 10:40:23 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:40:23Z] wg-access-trigger-watch: starting wg-access-agent.service reason=new_events=1\nJul 09 10:40:23 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:40:23Z] wg-access-trigger-watch: wg-access-agent.service start requested OK\nJul 09 10:45:53 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:45:53Z] wg-access-trigger-watch: new_events=1 first=event-1783593953692216166-cf5eb8c928e648cc8eccaa4106128b03.trigger:145790:1783593953688708840:20\nJul 09 10:45:53 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:45:53Z] wg-access-trigger-watch: starting wg-access-agent.service reason=new_events=1\nJul 09 10:45:53 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:45:53Z] wg-access-trigger-watch: wg-access-agent.service start failed rc=1 stdout='' stderr='Job for wg-access-agent.service failed because the control process exited with error code.\\nSee \"systemctl status wg-access-agent.service\" and \"journalctl -xeu wg-access-agent.service\" for details.\\n'\nJul 09 10:47:56 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:47:56Z] wg-access-trigger-watch: new_events=1 first=event-1783594076311494704-9c8e0f44d5b849fab78bd8e9f47ed4ca.trigger:145842:1783594076310062723:20\nJul 09 10:47:56 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:47:56Z] wg-access-trigger-watch: starting wg-access-agent.service reason=new_events=1\nJul 09 10:47:57 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:47:57Z] wg-access-trigger-watch: wg-access-agent.service start requested OK\nJul 09 10:49:55 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:49:55Z] wg-access-trigger-watch: new_events=1 first=event-1783594194822815906-e9b98a1066fe47f6aef89a625241cf8c.trigger:145791:1783594194819464384:20\nJul 09 10:49:55 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:49:55Z] wg-access-trigger-watch: starting wg-access-agent.service reason=new_events=1\nJul 09 10:49:56 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:49:56Z] wg-access-trigger-watch: wg-access-agent.service start requested OK\nJul 09 10:49:59 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:49:59Z] wg-access-trigger-watch: new_events=1 first=event-1783594199475340237-f0d88a82bafc4b7ea6d7db352214a58a.trigger:131075:1783594199471361692:20\nJul 09 10:49:59 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:49:59Z] wg-access-trigger-watch: starting wg-access-agent.service reason=new_events=1\nJul 09 10:50:00 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:50:00Z] wg-access-trigger-watch: wg-access-agent.service start requested OK\nJul 09 10:53:07 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:53:07Z] wg-access-trigger-watch: new_events=1 first=event-1783594386269100623-ff56ad0e0c8a4ca7a928445cd44e3af3.trigger:131089:1783594386263202595:20\nJul 09 10:53:07 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:53:07Z] wg-access-trigger-watch: starting wg-access-agent.service reason=new_events=1\nJul 09 10:53:07 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:53:07Z] wg-access-trigger-watch: wg-access-agent.service start requested OK\nJul 09 10:58:29 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:58:29Z] wg-access-trigger-watch: new_events=1 first=event-1783594709497599222-55b0727e0f1c474886ade8629e74ea6f.trigger:145846:1783594709491886037:20\nJul 09 10:58:29 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:58:29Z] wg-access-trigger-watch: starting wg-access-agent.service reason=new_events=1\nJul 09 10:58:30 wg-access-dev wg-access-trigger-watch.py[147081]: [2026-07-09T10:58:30Z] wg-access-trigger-watch: wg-access-agent.service start requested OK"
    },
    "mode": "READONLY_CONFIRM_STATE_AFTER_042F_HUNG_REBOOT_CMD",
    "schema": "router-step-facts-v1",
    "services": {
      "backend_health": {
        "rc": 0,
        "stderr": "",
        "stdout": "{\"status\":\"ok\",\"service\":\"wg-access-backend\",\"environment\":\"dev\"}"
      },
      "reconcile_timer_active": {
        "rc": 0,
        "stderr": "",
        "stdout": "active"
      },
      "reconcile_timer_enabled": {
        "rc": 0,
        "stderr": "",
        "stdout": "enabled"
      },
      "watcher_active": {
        "rc": 0,
        "stderr": "",
        "stdout": "active"
      },
      "watcher_enabled": {
        "rc": 0,
        "stderr": "",
        "stdout": "enabled"
      }
    },
    "step": "STEP_042F2_CLOSE_REBOOT_RECOVERY_AFTER_HUNG_REBOOT_CMD"
  }
}
