Pi-hole FTL stops applying dnsmasq.d rules until FTL restart (recurring issue)

Hi,

I have a recurring issue where Pi-hole FTL suddenly stops applying my custom dnsmasq rules from /etc/dnsmasq.d/.

Setup:

  • Pi-hole with FTL

  • Custom dnsmasq configuration in /etc/dnsmasq.d/

  • misc.etc_dnsmasq_d = true

Example rule:

/etc/dnsmasq.d/20-npmplus.conf

address=/*.mydomain.com/10.10.60.10

This configuration has been working for months.

Expected behavior:

unraid-server.mydomain.com
→ 10.10.60.10

But randomly the rule stops being applied. The file is still present and the configuration still shows:

misc.etc_dnsmasq_d = true

However, queries suddenly return the public DNS answer instead:

unraid-server.mydomain.com
→ ISP WAN

The issue affects internal split DNS. In my case this breaks WireGuard access because clients resolve the public address and traffic goes through NAT instead of directly to the internal service.

The fix is always the same:

sudo systemctl restart pihole-FTL

After restarting FTL, the rule immediately works again:

dig @10.10.100.50 unraid-server.mydomain.com

ANSWER:
10.10.60.10

This has happened twice now. The first time I also fixed it by restarting/reloading FTL.

I also noticed that:

pihole-FTL dnsmasq-test

fails with:

dnsmasq: cannot read /etc/pihole/dnsmasq.conf: Permission denied
Segmentation fault

(not sure if related).

Could this be an FTL reload/state issue where dnsmasq.d rules remain on disk but are no longer active until FTL is restarted?

Debug Token:

https://tricorder.pi-hole.net/9mFLYkGc/

I dont have a solution or a clue whats going on but,
always check the logs if the query registers and how!
Eg live tail:

sudo pihole tail

Or browse:

sudo less /var/log/pihole/pihole.log

With less you can enter a search string if hit the slash "/".

It most likely needs sudo or root powers.