vpn.peer-config returned the config exactly as stored at creation time, so after a node moves networks the reused companion peer's QR encodes the old location's address (seen on .116: Endpoint = 10.125.9.0 from the previous LAN) and the tunnel can never connect. Rewrite the Endpoint line with the node's current address before rendering the QR, and persist it back so the downloadable .conf matches. Endpoint detection is shared with vpn.create-peer via current_wg_endpoint_host(). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>