Dnsmasq some instances crash at boot time

Hi guys, I have set up my dns server for 3 different zones in this config.

/etc/config/dhcp

config dnsmasq 'main'
    list server '/*.mynet/192.168.5.1'
    list server '127.0.0.1#60053'
    list server '::1#60053'
    option domainneeded '1'
    option boguspriv '0'
    option filterwin2k '0'
    option localise_queries '1'
    option rebind_protection '0'
    option rebind_localhost '1'
    option local '/lan/'
    option domain 'lan'
    option expandhosts '1'
    option nonegcache '0'
    option cachesize '0'
    option authoritative '1'
    option readethers '1'
    option leasefile '/tmp/dhcp.leases'
    option noresolv '1'
    option strictorder '1'
    option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
    option nonwildcard '1'
    option localservice '1'
    option localuse '1'
    option ednspacket_max '1232'
    option filter_aaaa '0'
    option filter_a '0'
    option quietdhcp '1'
    list notinterface 'lab1'
    list notinterface 'lab2'

config dnsmasq 'lab1'
    list server '127.0.0.1#60053'
    list server '::1#60053'
    option domainneeded '1'
    option boguspriv '0'
    option filterwin2k '0'
    option localise_queries '1'
    option rebind_protection '0'
    option rebind_localhost '1'
    option local '/che/'
    option domain 'che'
    option expandhosts '1'
    option nonegcache '0'
    option cachesize '0'
    option authoritative '1'
    option readethers '1'
    option leasefile '/tmp/dhcplb1.leases'
    option noresolv '1'
    option strictorder '1'
    option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
    option nonwildcard '1'
    option localservice '1'
    option localuse '1'
    option ednspacket_max '1232'
    option filter_aaaa '0'
    option filter_a '0'
    option quietdhcp '1'
    list interface 'lab1'
    list notinterface 'loopback'

config dnsmasq 'lab2'
    list server '127.0.0.1#60053'
    list server '::1#60053'
    option domainneeded '1'
    option boguspriv '0'
    option filterwin2k '0'
    option localise_queries '1'
    option rebind_protection '0'
    option rebind_localhost '1'
    option local '/bio/'
    option domain 'bio'
    option expandhosts '1'
    option nonegcache '0'
    option cachesize '0'
    option authoritative '1'
    option readethers '1'
    option leasefile '/tmp/dhcplb2.leases'
    option noresolv '1'
    option strictorder '1'
    option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
    option nonwildcard '1'
    option localservice '1'
    option localuse '1'
    option ednspacket_max '1232'
    option filter_aaaa '0'
    option filter_a '0'
    option quietdhcp '1'
    list interface 'lab2'
    list notinterface 'loopback'

At boot time when the router initializes those instances, I got a lot of this message:

Thu Apr 16 09:05:59 2026 daemon.crit dnsmasq[1]: failed to create listening socket for fe80::a02:8eff:fee3:a128%eth0: Address in use
Thu Apr 16 09:05:59 2026 daemon.crit dnsmasq[1]: FAILED to start up
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: started, version 2.90 cache disabled
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: DNS service limited to local subnets
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-nftset no-auth no-cryptohash no-DNSSEC no-ID loop-detect inotify dumpfile
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: UBus support enabled: connected to system bus
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: using nameserver 192.168.5.1#53 for domain *.mynet
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: using nameserver 127.0.0.1#60053
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: using nameserver ::1#60053
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: using only locally-known addresses for lan
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.main - 0 names
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.lab1 - 0 names
Thu Apr 16 09:05:59 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.lab2 - 0 names
Thu Apr 16 09:06:04 2026 daemon.crit dnsmasq[1]: failed to create listening socket for fe80::a02:8eff:fee3:a128%eth0: Address in use
Thu Apr 16 09:06:04 2026 daemon.crit dnsmasq[1]: FAILED to start up
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: started, version 2.90 cache disabled
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: DNS service limited to local subnets
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-nftset no-auth no-cryptohash no-DNSSEC no-ID loop-detect inotify dumpfile
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: UBus support enabled: connected to system bus
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: using nameserver 127.0.0.1#60053
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: using nameserver ::1#60053
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: using only locally-known addresses for lab1
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.main - 0 names
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.lab1 - 0 names
Thu Apr 16 09:06:09 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.lab2 - 0 names
Thu Apr 16 09:06:09 2026 daemon.warn dnsmasq[1]: failed to create listening socket for fe80::64b4:49ff:feb2:29e6%ifb4wan: Address in use
Thu Apr 16 09:06:09 2026 daemon.warn dnsmasq[1]: failed to create listening socket for 192.168.3.1: Address in use
Thu Apr 16 09:06:10 2026 daemon.warn dnsmasq[1]: failed to create listening socket for 127.0.0.1: Address in use
Thu Apr 16 09:06:10 2026 daemon.warn dnsmasq[1]: failed to create listening socket for ::1: Address in use
Thu Apr 16 09:06:10 2026 daemon.warn dnsmasq[1]: failed to create listening socket for 192.168.6.1: Address in use
Thu Apr 16 09:06:11 2026 daemon.warn dnsmasq[1]: failed to create listening socket for fe80::a02:8eff:fee3:a128%eth0: Address in use
Thu Apr 16 09:06:14 2026 daemon.warn dnsmasq[1]: failed to create listening socket for fd5f:181a:9a6a:10::1: Address in use
Thu Apr 16 09:06:14 2026 daemon.warn dnsmasq[1]: failed to create listening socket for fe80::a02:8eff:fee3:a128%lan4: Address in use
Thu Apr 16 09:06:15 2026 daemon.warn dnsmasq[1]: failed to create listening socket for : Address in use
Thu Apr 16 09:06:15 2026 daemon.warn dnsmasq[1]: failed to create listening socket for fe80::a02:8eff:fee3:a129%wan: Address in use
Thu Apr 16 09:06:16 2026 daemon.warn dnsmasq[1]: failed to create listening socket for fe80::a02:8eff:fee3:a128%br-lan: Address in use
Thu Apr 16 09:06:16 2026 daemon.warn dnsmasq[1]: failed to create listening socket for fd5f:181a:9a6a::1: Address in use

The dnsmasq eventually respawn and later listen to correct interface for each instance make me search through init.d and see this:

/etc/init.d/dnsmasq Line 1052-1056

[ -n "$BOOT" ] || {
	config_list_foreach "$cfg" "interface" append_interface
	config_list_foreach "$cfg" "notinterface" append_notinterface
}

To my understanding this mean at boot those instances will listen to all interfaces, which make lab1 and lab2 crash and fail to initialize.

Is this expected behavior? Sometime the service stuck and completely crash for my lab1 and lab2.

I tried to fix it myself and everything seem to work with or without multiple instances. PR created for maintainer: