Verification done on MAAS 3.0.2. In a HA deployment with 1 region+rack and 1 rack, the dhcpd.conf file's section 'failover peer' has IPv4+IPv6 address in 3.0.1 and only IPv4 in 3.0.2 The synthetic reproducer changes the order of IPs in the maasdb so the IPv6 address has a _lower id_ than then IPv4 address (and thus goes first in the for-loop in get_ip_address_for_rack_controller()). (Steps are described in more detail in comment #3.) Before DB changes: # maas admin rack-controllers read | jq '.[] | [.system_id, .hostname, (.interface_set[] | .links[] | [.id, .ip_address, .subnet.vlan.id])]' [ "hy37ba", "maas-srv-30snap", [ 1, "10.30.200.2", 5001 ], [ 3, "fc00::2", 5001 ] ] [ "8meq3e", "maas-srv-peer-30snap", [ 2, "10.30.200.3", 5001 ], [ 4, "fc00::3", 5001 ] ] DB changes: # maas-test-db.psql postgres=# \c maasdb maasdb=# select id, ip from maasserver_staticipaddress order by id; id | ip ----+------------- 1 | 10.30.200.2 2 | 10.30.200.3 3 | fc00::2 4 | fc00::3 (4 rows) maasdb=# update maasserver_staticipaddress set ip='1.2.3.4' where id=4; UPDATE 1 maasdb=# update maasserver_staticipaddress set ip='fc00::3' where id=2; UPDATE 1 maasdb=# update maasserver_staticipaddress set ip='10.30.200.3' where id=4; UPDATE 1 maasdb=# select id, ip from maasserver_staticipaddress order by id; id | ip ----+------------- 1 | 10.30.200.2 2 | fc00::3 3 | fc00::2 4 | 10.30.200.3 (4 rows) maasdb=# \q After DB changes: # maas admin rack-controllers read | jq '.[] | [.system_id, .hostname, (.interface_set[] | .links[] | [.id, .ip_address, .subnet.vlan.id])]' [ "hy37ba", "maas-srv-30snap", [ 1, "10.30.200.2", 5001 ], [ 3, "fc00::2", 5001 ] ] [ "8meq3e", "maas-srv-peer-30snap", [ 2, "fc00::3", 5001 ], [ 4, "10.30.200.3", 5001 ] ] MAAS 3.0.1: # snap list maas Name Version Rev Tracking Publisher Notes maas 3.0.1-10052-g.82c730c57 28871 3.0/stable canonical✓ - Enable DHCP with HA: root@maas-srv-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { primary; address 10.30.200.2; peer address fc00::3; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; mclt 3600; split 255; } root@maas-srv-peer-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { secondary; address fc00::3; peer address 10.30.200.2; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; } Disable/Re-enable DHCP with HA (switch the order of servers for testing purposes): root@maas-srv-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { secondary; address 10.30.200.2; peer address fc00::3; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; } root@maas-srv-peer-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { primary; address fc00::3; peer address 10.30.200.2; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; mclt 3600; split 255; } MAAS 3.0.2: # snap refresh --channel=3.0/edge maas # snap list maas Name Version Rev Tracking Publisher Notes maas 3.0.2-10056-g.089ec66c2 33607 3.0/edge canonical✓ - Enable DHCP with HA: root@maas-srv-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { primary; address 10.30.200.2; peer address 10.30.200.3; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; mclt 3600; split 255; } root@maas-srv-peer-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { secondary; address 10.30.200.3; peer address 10.30.200.2; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; } Disable/Re-enable DHCP with HA (switch the order of servers for testing purposes): root@maas-srv-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { secondary; address 10.30.200.2; peer address 10.30.200.3; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; } root@maas-srv-peer-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { primary; address 10.30.200.3; peer address 10.30.200.2; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; mclt 3600; split 255; } Disable/Re-enable DHCP with HA (switch the order of servers for testing purposes): root@maas-srv-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { primary; address 10.30.200.2; peer address 10.30.200.3; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; mclt 3600; split 255; } root@maas-srv-peer-30snap:~# sudo cat /var/snap/maas/common/maas/dhcpd.conf | sed -n '/^failover peer/,/^}/p' failover peer "failover-vlan-5001" { secondary; address 10.30.200.3; peer address 10.30.200.2; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; }