Local domain appears and disappears on status page

ok. here is wat you asked for.

root@OpenWrt:~# ubus call system board

{
        "kernel": "6.6.73",
        "hostname": "OpenWrt",
        "system": "ARMv8 Processor rev 4",
        "model": "GL.iNet GL-MT6000",
        "board_name": "glinet,gl-mt6000",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "24.10.0",
                "revision": "r28427-6df0e3d02a",
                "target": "mediatek/filogic",
                "description": "OpenWrt 24.10.0 r28427-6df0e3d02a",
                "builddate": "1738624177"
        }
}
root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/local/'
        option domain 'Local'
        option expandhosts '1'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option localservice '1'
        option ednspacket_max '1232'
        option logfacility 'USER'
        option noresolv '1'
        option port '54'
        option quietdhcp '1'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'
        list dhcp_option '3,192.168.1.1'
        list dhcp_option '6,192.168.1.1'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

config host
        list mac  '00:00:00:00:00:00'
        option ip '192.168.1.84'
        option name 'HomeServer'

config host
        option name 'BuddyPC'
        list mac  '00:00:00:00:00:00'
        option ip '192.168.1.11'

config host
        option name 'Quest3'
        list mac  '00:00:00:00:00:00'
        option ip '192.168.1.174'

config host
        option name 'HomeAssistant'
        list mac  '00:00:00:00:00:00'
        option ip '192.168.110.55'

config host
        option name 'BrotherPrinter'
        list mac  '00:00:00:00:00:00'
        option ip '192.168.4.232'

config host
        option name 'winserver'
        list mac  '00:00:00:00:00:00'
        option ip '192.168.1.172'

config dhcp 'iot'
        option interface 'iot'
        option start '100'
        option limit '150'
        option leasetime '12h'
        list dhcp_option '3,192.168.4.1'
        list dhcp_option '6,192.168.4.1'

config dhcp 'guest'
        option interface 'guest'
        option start '100'
        option limit '150'
        option leasetime '12h'
        list dhcp_option '3,192.168.5.1'
        list dhcp_option '6,192.168.5.1'

config host
        option name 'panda-touch'
        option ip '192.168.4.152'
        list mac  '00:00:00:00:00:00'

config host
        option ip '192.168.4.233'
        list mac  '00:00:00:00:00:00'
        option name 'p1s'

config host
        option name 'panda-pwr'
        option ip '192.168.4.110'
        list mac  '00:00:00:00:00:00'

config host
        option name 'kasa-plug-1'
        option ip '192.168.4.172'
        list mac  '00:00:00:00:00:00'

config host
        option ip '192.168.4.173'
        list mac  '00:00:00:00:00:00'
        option name 'kasa-plug-2'

config dhcp 'HomeAsst'
        option interface 'HomeAsst'
        option start '10'
        option limit '150'
        option leasetime '12h'
        list dhcp_option '3,192.168.110.1'
        list dhcp_option '6,192.168.110.1'

config dhcp 'DockerMedia'
        option interface 'DockerMedia'
        option start '10'
        option limit '150'
        option leasetime '12h'
        list dhcp_option '3,192.168.120.1'
        list dhcp_option '6,192.168.120.1'
root@OpenWrt:~# cat /etc/config/firewall

config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option synflood_protect '1'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'
        option enabled '0'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'
        option enabled '0'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'
        option enabled '0'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'
        option enabled '0'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config zone
        option name 'GuestZone'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'guest'

config zone
        option name 'IOTZone'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option log '1'
        option log_limit '10/second'
        list network 'iot'

config forwarding
        option src 'GuestZone'
        option dest 'wan'

config forwarding
        option src 'IOTZone'
        option dest 'wan'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'HomeServer-Deluge'
        list proto 'tcp'
        option src 'wan'
        option src_dport '52525'
        option dest_ip '192.168.1.84'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'HomeServer-Deluge2'
        list proto 'tcp'
        option src 'wan'
        option src_dport '58846'
        option dest_ip '192.168.1.84'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'HomeServer-Emby'
        list proto 'tcp'
        option src 'wan'
        option src_dport '8096'
        option dest_ip '192.168.1.84'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'HomeServer-Emby2'
        list proto 'tcp'
        option src 'wan'
        option src_dport '8920'
        option dest_ip '192.168.1.84'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'HomeServer-VPN'
        list proto 'udp'
        option src 'wan'
        option src_dport '51820'
        option dest_ip '192.168.1.84'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'WinServer Arma Reforger'
        list proto 'udp'
        option src 'wan'
        option src_dport '20001'
        option dest_ip '192.168.1.172'
        option enabled '0'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'WinServer Arma Reforger'
        list proto 'udp'
        option src 'wan'
        option src_dport '17777'
        option dest_ip '192.168.1.172'
        option enabled '0'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'WinServer Arma Reforger'
        list proto 'udp'
        option src 'wan'
        option src_dport '19999'
        option dest_ip '192.168.1.172'
        option enabled '0'

config rule
        option name 'Allow mDNS'
        list proto 'udp'
        option src '*'
        option src_port '5353 33257'
        list dest_ip '224.0.0.251'
        option dest_port '5353 33257'
        option target 'ACCEPT'
        option enabled '0'

config rule
        option name 'Allow mDNS'
        list proto 'udp'
        option src '*'
        list dest_ip '224.0.0.251'
        option dest_port '5353'
        option target 'ACCEPT'
        option src_port '5353'

config rule
        option name 'Atom Echo --> Home Assistant'
        option src 'IOTZone'
        option dest 'HomeAsstZone'
        option target 'ACCEPT'
        list src_ip '192.168.4.197'
        list src_ip '192.168.4.112'
        list src_ip '192.168.4.120'
        list src_ip '192.168.4.210'
        list src_ip '192.168.4.218'
        list src_ip '192.168.4.122'
        list proto 'tcp'

config zone
        option name 'HomeAsstZone'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'HomeAsst'

config rule
        option name 'Tuya Discovery'
        list proto 'udp'
        option src 'IOTZone'
        list dest_ip '255.255.255.255'
        option dest_port '6667'
        option target 'ACCEPT'

config rule
        option name 'Adguard_dns'
        option src 'lan'
        option src_port '53'
        option dest_port '53'
        option target 'ACCEPT'
        option dest 'lan'
        option enabled '0'

config rule
        option name 'homekit/ecobee/HASS'
        list proto 'tcp'
        option src 'IOTZone'
        list src_ip '192.168.4.153'
        option dest 'HomeAsstZone'
        option target 'ACCEPT'
        option src_port '37948'

config forwarding
        option src 'lan'
        option dest 'IOTZone'

config forwarding
        option src 'HomeAsstZone'
        option dest 'wan'

config rule
        option name 'IOT DHCP and DNS'
        option src 'IOTZone'
        option dest_port '53 67 68'
        option target 'ACCEPT'

config rule
        option name 'Guest DHCP and DNS'
        option src 'GuestZone'
        option dest_port '53 67 68'
        option target 'ACCEPT'

config rule
        option name 'DockerMedia DHCP and DNS'
        option src 'DockerMediaZone'
        option dest_port '53 67 68'
        option target 'ACCEPT'

config rule
        option name 'HomeAsst DHCP and DNS'
        option src 'HomeAsstZone'
        option dest_port '53 67 68'
        option target 'ACCEPT'

config zone
        option name 'DockerMediaZone'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'DockerMedia'

config forwarding
        option src 'DockerMediaZone'
        option dest 'wan'

config forwarding
        option src 'lan'
        option dest 'DockerMediaZone'

config forwarding
        option src 'lan'
        option dest 'HomeAsstZone'

config forwarding
        option src 'IOTZone'
        option dest 'HomeAsstZone'

config forwarding
        option src 'HomeAsstZone'
        option dest 'IOTZone'
root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd13:cd98:1579::/48'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'
        list ports 'lan5'
        option ipv6 '0'

config interface 'lan'
        option device 'br-lan.99'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        list dns '192.168.1.1'

config interface 'wan'
        option device 'eth1'
        option proto 'dhcp'
        option peerdns '0'
        option force_link '1'
        list dns '1.1.1.1'

config device
        option name 'eth0'
        option ipv6 '0'

config device
        option name 'eth1'
        option ipv6 '0'

config device
        option type 'bridge'
        option name 'br-guest'
        option bridge_empty '1'
        option ipv6 '0'

config device
        option type 'bridge'
        option name 'br-iot'
        option bridge_empty '1'
        option ipv6 '0'

config interface 'iot'
        option proto 'static'
        option device 'br-iot'
        option ipaddr '192.168.4.1'
        option netmask '255.255.255.0'

config interface 'guest'
        option proto 'static'
        option device 'br-guest'
        option ipaddr '192.168.5.1'
        option netmask '255.255.255.0'

config bridge-vlan
        option device 'br-lan'
        option vlan '110'
        list ports 'lan5:t'

config bridge-vlan
        option device 'br-lan'
        option vlan '120'
        list ports 'lan5:t'

config bridge-vlan
        option device 'br-lan'
        option vlan '99'
        list ports 'lan1:u*'
        list ports 'lan2:u*'
        list ports 'lan3:u*'
        list ports 'lan4:u*'
        list ports 'lan5'

config device
        option name 'br-lan.99'
        option type '8021q'
        option ifname 'br-lan'
        option vid '99'
        option ipv6 '0'

config interface 'HomeAsst'
        option proto 'static'
        option device 'br-lan.110'
        option ipaddr '192.168.110.1'
        option netmask '255.255.255.0'
        list dns '192.168.1.1'

config interface 'DockerMedia'
        option proto 'static'
        option device 'br-lan.120'
        option ipaddr '192.168.120.1'
        option netmask '255.255.255.0'
        list dns '192.168.1.1'

config device
        option name 'br-lan.110'
        option type '8021q'
        option ifname 'br-lan'
        option vid '110'
        option ipv6 '0'

config device
        option name 'br-lan.120'
        option type '8021q'
        option ifname 'br-lan'
        option vid '120'
        option ipv6 '0'

Looks like I overlooked the .local/mDNS part. I agree with the previous posters: at the very least I'd switch to the default .lan domain just to eliminate this as a potential issue, now that the AGH upstreams are changed. Is AGH actually listening on all the VLAN interfaces?

Also I don't think you need these devices for VLANs:

110 is for homeasst to be on its own VLAN. I also did turn everything back to .lan but the issue didn't change at all. So I don't think it has anything Todo with the .local as it sounds like it's more of a convention and not a limitation. Also if it was mdns I'd suspect it would just be a few of the hostnames having refresh issues. But maybe I'm wrong.
Also the adguard is set to use 0.0.0.0. when I had it set to the routers IP then the router wasn't showing the .local or .lan domains at all. It was just showing their hostname. Adguard showed it correctly tho and pinging the hostname.lan did actually work. Wen I set it to all interfaces it finally showed in the router, but would randomly disappear and re-apear.

Says I'm listening to all interfaces. Maybe it's because I have the DHCP options three and six set?

Can you try binding it to each VLAN IP individually in bind_hosts:?

When i try that non of the '(hostname.domain)' show up anymore.

I am having the exact same problem. On the overview page in the list of active DHCP leases the names are constantly switching between FQDN and just the hostnames. But I'm not using local or lan or anything, I'm using my actual valid own domain.

I'm using AdGuard Home, running on port 53, dnsmasq is running on port 1054. In Adguard Home I have the following for upstream servers:

[/myowndomain.com/][::1]:1054
[//][::1]:1054
[2606:4700:4700::1111]:53

and the following for Private reverse DNS servers:

[::1]:1054

If I disable AdGuard Home and run dnsmasq on port 53, all the computers on the overview page are shown with their FQDNs.

I've managed to 'fix' it by using a workaround. I've put dnsmasq back on the standard port 53 and switched AdGuard Home to port 1054, and then used port forwarding to redirect all traffic from the lan for port 53 to port 1054. That way the router is using standard dnsmasq and all my lan devices use AdGuard Home.

The active dhcp leases are now shown with their FQDNs.

It's not ideal but Im glad this workaround works. Im hoping to find the cause or a proper solution but if not then i'll prob do what you did. I'm honestly thinking it may be a visual bug with how the router shows and updates the 'FQDN' as you put it.