In some environments, for example after PXE boot, the system may keeps interface settings or routing configuration applied during initramfs stage.
This confuses FRR and can leads to wrong network state.
For example, FRR may see routes that do not exist in kernel:
vyos@vyos-01:~$ ip r 145.40.94.158/31 dev eth2 proto kernel scope link src 145.40.94.159 vyos@vyos-01:~$ show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, f - OpenFabric, > - selected route, * - FIB route, q - queued, r - rejected, b - backup S 0.0.0.0/0 [210/0] via 145.40.94.158, eth2, weight 1, 00:02:27 K>* 0.0.0.0/0 [0/210] via 145.40.94.158, eth2, 00:02:33 C>* 145.40.94.158/31 is directly connected, eth2, 00:02:28 vyos@vyos-01:~$ sudo ip l set eth2 down vyos@vyos-01:~$ sudo ip l set eth2 up vyos@vyos-01:~$ ip r default nhid 31 via 145.40.94.158 dev eth2 proto static metric 20 145.40.94.158/31 dev eth2 proto kernel scope link src 145.40.94.159 vyos@vyos-01:~$ show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, f - OpenFabric, > - selected route, * - FIB route, q - queued, r - rejected, b - backup S>* 0.0.0.0/0 [210/0] via 145.40.94.158, eth2, weight 1, 00:00:09 C>* 145.40.94.158/31 is directly connected, eth2, 00:00:09
We can try to reset interfaces before loading a config to reduce risks.