Router randomly requires .local for host names

For some reason my router oscillates between requiring .local and not for my hostnames. This is happening on multiple hosts, so I can't blame any host in particular (multiple Raspberry Pi's as well as a Netgear NAS.)
I have rebooted the router.

what I am talking about is:
ping x
works fine for a while. When it fails, I can:
ping x.local

and your router is your DNS ?

Correct.

I did (literally just now) updated my old firmware and it seems to be behaving correctly (don't need the .local at the end of the hostname for now).

Is this the latest firmware for my router?:
|Hostname|xxxxxx|
|Model|TP-Link Archer C2600|
|Architecture|ARMv7 Processor rev 0 (v7l)|
|Firmware Version|OpenWrt 21.02.0-rc2 r16122-c2139eef27 / LuCI openwrt-21.02 branch git-21.148.49484-14511e5|
|Kernel Version|5.4.119|

I just upgraded the firmware, but am not sure about the kernel

that's the latest beta.

latest stable is 19.07.7

I'm running three AC2600s as APa back home, very happy with them.

Router keeps DHCP hostnames only in the runtime config, so it's lost upon reboot.
You need to set up static leases for all hosts and enable DNS for each lease: