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:09We can try to reset interfaces before loading a config to reduce risks.