Page MenuHomeVyOS Platform

vrf: deleting one out of two VRFs with static routes throw KeyError
Closed, ResolvedPublicBUG

Description

To reproduce:

set vrf name foo protocols static route 0.0.0.0/0 next-hop 172.18.201.254 interface 'eth0.201'
set vrf name foo protocols static route 0.0.0.0/0 next-hop 172.18.201.254 vrf 'default'
set vrf name foo table '1010'
set vrf name red protocols static route 0.0.0.0/0 next-hop 172.18.201.254 interface 'eth0.201'
set vrf name red protocols static route 0.0.0.0/0 next-hop 172.18.201.254 vrf 'default'
set vrf name red table '2000'
vyos@vyos# run show vrf
Name    State    MAC address        Flags                     Interfaces
------  -------  -----------------  ------------------------  ------------
foo     up       4a:e7:d6:bd:08:53  noarp,master,up,lower_up  n/a
red     up       0e:ba:66:41:9b:13  noarp,master,up,lower_up  n/a
vyos@vyos# delete vrf name foo
[edit]
vyos@vyos# commit
[ vrf name foo protocols static ]
Traceback (most recent call last):
  File "/usr/libexec/vyos/services/vyos-configd", line 146, in run_script
    script.verify(c)
  File "/usr/libexec/vyos/conf_mode/protocols_static.py", line 56, in verify
    static = vrf and config_dict['vrf']['name'][vrf]['protocols']['static'] or config_dict['static']
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
KeyError: 'foo'

delete [ vrf name foo protocols static ] failed
[[vrf]] failed
Commit failed
[edit]

Details

Version
2025.11.17-0020-rolling
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)