Page MenuHomeVyOS Platform

1.3.8 to 1.5-2025-Q2 (Error in /opt/vyatta/etc/config-migrate/migrate/policy/1-to-2)
Open, HighPublicBUG

Description

Hello,

I've just tried to run 1.5-2025-Q2, doing in-place upgrade from 1.3.8, but migration script is failing.

Happy to provide more details if needed.

Details:
Version:          VyOS 1.5-stream-2025-Q2
Release train:    circinus
Release flavor:   generic

Built by:         autobuild@vyos.net
Built on:         Thu 10 Jul 2025 00:09 UTC
Build UUID:       141037c5-126a-4fbf-bd87-406253347924
Build commit ID:  be16c8588264f3-dirty

Architecture:     x86_64
Boot via:         installed image
System type:      Microsoft Hyper-V guest

Hardware vendor:  Vultr
Hardware model:   VC2
Hardware S/N:     77821710
Hardware UUID:    343dc71f-62db-4ddb-b610-108a9bf3d045

Copyright:        VyOS maintainers and contributors
vyos@r0-waw:~$ configure
WARNING: There was a config error on boot: saving the configuration now could overwrite data.
You may want to check and reload the boot config
[edit]
vyos@r0-waw# load
Loading configuration from 'config.boot'
enable
disable
enable
enable
enable
enable
enable
enable
enable
enable
vyos.migrate - ERROR - Error in /opt/vyatta/etc/config-migrate/migrate/policy/1-to-2: cannot access local variable 'if_path' where it is not associated with a value
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/vyos/compose_config.py", line 56, in apply_func
    func(self.config_tree)
  File "/opt/vyatta/etc/config-migrate/migrate/policy/1-to-2", line 61, in migrate
    if config.exists(if_path + [vif_type]):
                     ^^^^^^^
UnboundLocalError: cannot access local variable 'if_path' where it is not associated with a value

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/vyos/compose_config.py", line 73, in apply_file
    self.apply_func(func)
  File "/usr/lib/python3/dist-packages/vyos/compose_config.py", line 60, in apply_func
    raise ComposeConfigError(e) from e
vyos.compose_config.ComposeConfigError: cannot access local variable 'if_path' where it is not associated with a value

incomplete migration: check /opt/vyatta/etc/config/vyos-migrate.log for error
[edit]
vyos@r0-waw# cat /opt/vyatta/etc/config/vyos-migrate.log
List of applied migration modules:
applying /opt/vyatta/etc/config-migrate/migrate/cluster/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/conntrack/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/conntrack/4-to-5
applying /opt/vyatta/etc/config-migrate/migrate/conntrack/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/container/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/container/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/dhcp-server/6-to-7
applying /opt/vyatta/etc/config-migrate/migrate/dhcp-server/7-to-8
applying /opt/vyatta/etc/config-migrate/migrate/dhcp-server/8-to-9
applying /opt/vyatta/etc/config-migrate/migrate/dhcp-server/9-to-10
applying /opt/vyatta/etc/config-migrate/migrate/dhcp-server/10-to-11
applying /opt/vyatta/etc/config-migrate/migrate/dhcpv6-server/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/dhcpv6-server/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/dhcpv6-server/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/dhcpv6-server/4-to-5
applying /opt/vyatta/etc/config-migrate/migrate/dhcpv6-server/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/dns-dynamic/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/dns-dynamic/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/dns-dynamic/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/dns-dynamic/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/dns-forwarding/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/firewall/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/firewall/6-to-7
applying /opt/vyatta/etc/config-migrate/migrate/firewall/7-to-8
applying /opt/vyatta/etc/config-migrate/migrate/firewall/8-to-9
applying /opt/vyatta/etc/config-migrate/migrate/firewall/9-to-10
applying /opt/vyatta/etc/config-migrate/migrate/firewall/10-to-11
applying /opt/vyatta/etc/config-migrate/migrate/firewall/11-to-12
applying /opt/vyatta/etc/config-migrate/migrate/firewall/12-to-13
applying /opt/vyatta/etc/config-migrate/migrate/firewall/13-to-14
applying /opt/vyatta/etc/config-migrate/migrate/firewall/14-to-15
applying /opt/vyatta/etc/config-migrate/migrate/firewall/15-to-16
applying /opt/vyatta/etc/config-migrate/migrate/firewall/16-to-17
applying /opt/vyatta/etc/config-migrate/migrate/firewall/17-to-18
applying /opt/vyatta/etc/config-migrate/migrate/firewall/18-to-19
applying /opt/vyatta/etc/config-migrate/migrate/flow-accounting/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/https/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/https/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/https/4-to-5
applying /opt/vyatta/etc/config-migrate/migrate/https/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/https/6-to-7
applying /opt/vyatta/etc/config-migrate/migrate/ids/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/23-to-24
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/24-to-25
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/25-to-26
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/26-to-27
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/27-to-28
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/28-to-29
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/29-to-30
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/30-to-31
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/31-to-32
applying /opt/vyatta/etc/config-migrate/migrate/interfaces/32-to-33
applying /opt/vyatta/etc/config-migrate/migrate/ipoe-server/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/ipoe-server/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/ipoe-server/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/ipsec/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/ipsec/6-to-7
applying /opt/vyatta/etc/config-migrate/migrate/ipsec/7-to-8
applying /opt/vyatta/etc/config-migrate/migrate/ipsec/8-to-9
applying /opt/vyatta/etc/config-migrate/migrate/ipsec/9-to-10
applying /opt/vyatta/etc/config-migrate/migrate/ipsec/10-to-11
applying /opt/vyatta/etc/config-migrate/migrate/ipsec/11-to-12
applying /opt/vyatta/etc/config-migrate/migrate/ipsec/12-to-13
applying /opt/vyatta/etc/config-migrate/migrate/isis/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/isis/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/l2tp/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/l2tp/4-to-5
applying /opt/vyatta/etc/config-migrate/migrate/l2tp/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/l2tp/6-to-7
applying /opt/vyatta/etc/config-migrate/migrate/l2tp/7-to-8
applying /opt/vyatta/etc/config-migrate/migrate/l2tp/8-to-9
applying /opt/vyatta/etc/config-migrate/migrate/lldp/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/lldp/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/monitoring/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/monitoring/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/nat/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/nat/6-to-7
applying /opt/vyatta/etc/config-migrate/migrate/nat/7-to-8
applying /opt/vyatta/etc/config-migrate/migrate/nat66/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/nat66/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/nat66/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/ntp/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/ntp/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/openconnect/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/openconnect/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/openconnect/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/openvpn/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/openvpn/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/openvpn/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/openvpn/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/ospf/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/ospf/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/pim/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/policy/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/policy/1-to-2
Error in /opt/vyatta/etc/config-migrate/migrate/policy/1-to-2: cannot access local variable 'if_path' where it is not associated with a value
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/vyos/compose_config.py", line 56, in apply_func
    func(self.config_tree)
  File "/opt/vyatta/etc/config-migrate/migrate/policy/1-to-2", line 61, in migrate
    if config.exists(if_path + [vif_type]):
                     ^^^^^^^
UnboundLocalError: cannot access local variable 'if_path' where it is not associated with a value

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/vyos/compose_config.py", line 73, in apply_file
    self.apply_func(func)
  File "/usr/lib/python3/dist-packages/vyos/compose_config.py", line 60, in apply_func
    raise ComposeConfigError(e) from e
vyos.compose_config.ComposeConfigError: cannot access local variable 'if_path' where it is not associated with a value

applying /opt/vyatta/etc/config-migrate/migrate/pppoe-server/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/pppoe-server/6-to-7
applying /opt/vyatta/etc/config-migrate/migrate/pppoe-server/7-to-8
applying /opt/vyatta/etc/config-migrate/migrate/pppoe-server/8-to-9
applying /opt/vyatta/etc/config-migrate/migrate/pppoe-server/9-to-10
applying /opt/vyatta/etc/config-migrate/migrate/pppoe-server/10-to-11
applying /opt/vyatta/etc/config-migrate/migrate/pptp/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/pptp/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/pptp/4-to-5
applying /opt/vyatta/etc/config-migrate/migrate/qos/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/quagga/8-to-9
applying /opt/vyatta/etc/config-migrate/migrate/quagga/9-to-10
applying /opt/vyatta/etc/config-migrate/migrate/quagga/10-to-11
applying /opt/vyatta/etc/config-migrate/migrate/bgp/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/bgp/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/bgp/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/bgp/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/bgp/4-to-5
applying /opt/vyatta/etc/config-migrate/migrate/bgp/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/reverse-proxy/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/reverse-proxy/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/reverse-proxy/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/rip/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/rpki/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/snmp/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/sstp/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/sstp/4-to-5
applying /opt/vyatta/etc/config-migrate/migrate/sstp/5-to-6
applying /opt/vyatta/etc/config-migrate/migrate/system/21-to-22
applying /opt/vyatta/etc/config-migrate/migrate/system/22-to-23
applying /opt/vyatta/etc/config-migrate/migrate/system/23-to-24
applying /opt/vyatta/etc/config-migrate/migrate/system/24-to-25
applying /opt/vyatta/etc/config-migrate/migrate/system/25-to-26
applying /opt/vyatta/etc/config-migrate/migrate/system/26-to-27
applying /opt/vyatta/etc/config-migrate/migrate/system/27-to-28
applying /opt/vyatta/etc/config-migrate/migrate/system/28-to-29
applying /opt/vyatta/etc/config-migrate/migrate/vrf/0-to-1
applying /opt/vyatta/etc/config-migrate/migrate/vrf/1-to-2
applying /opt/vyatta/etc/config-migrate/migrate/vrf/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/vrrp/2-to-3
applying /opt/vyatta/etc/config-migrate/migrate/vrrp/3-to-4
applying /opt/vyatta/etc/config-migrate/migrate/wanloadbalance/3-to-4

Details

Version
1.5-2025-Q2
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)