The T8482 change "reject commits referencing an incomplete policy object" (rolling b58881fda, circinus backport b01eac4e4) made vyos-configd skip the FRR render when any node of the commit failed (should_render_frr() in src/services/vyos-configd). VyOS still commits the nodes that succeeded, so their routing changes are in the configuration but never reach FRR.
At boot all nodes are in one commit. If a configured NIC is missing (removed or replaced hardware, a detached cloud vNIC), its ethernet node fails and the whole routing configuration stays out of FRR.
Boot case: the DUT has a static route, a BGP session and an OSPF area to a peer, all working. The NIC eth2, which has an address in the config, is removed from the VM and the VM is restarted. The boot journal shows:
vyos-configd[765]: Interface "eth2" does not exist! vyos-configd[765]: [interfaces_ethernet] Interface "eth2" does not exist!
On the circinus head the static route, BGP and OSPF are in show configuration but absent from vtysh -c 'show running-config' and from the kernel. The peer sees BGP and OSPF down. On 1.5.1 the boot commit fails the same way, but routing comes up.
Interactive case:
set protocols static route 198.51.100.0/24 blackhole set interfaces ethernet eth99 description x commit [ interfaces ethernet eth99 ] Interface "eth99" does not exist! [[interfaces ethernet eth99]] failed Commit failed
The route is in show configuration commands and not in vtysh -c 'show running-config'. It reaches FRR only when a later commit changes a routing node. A commit that only deletes eth99 does not render it.
Expected: either the whole commit is rejected, or FRR gets the configuration of the nodes that were committed. 1.5.1 did the latter.