Edit This may be misleading, I didn't realize I had randomized MAC address for the phone, so my tests are invalid. I will need to revisit this when I have time with new tests.
This is extremely frustrating, confusing and exhausting.
Expected Behaviour:
Setting my (TP-link Deco) router's DNS to point to pi-hole ip address lets pihole filter/block for all clients on local network.
Actual Behaviour:
Exactly that - except now my samsung android phone stops getting notifications in the background. If I disconnect from wifi I all-of-a-sudden get a bunch of notifications that seem to have been 'queued'. This is consistent/reproducible. My phone still has internet connection and pihole blocks sites like normal, I just don't get notifications. The pihole isn't blocking anything that is preventing the phone getting notifications.
The most frustrating thing? As long as my router's DNS isn't pointing to the pihole - I can set my phone's connection to static and point its DNS to my pihole, and this works. My pihole blocks sites for my phone while my phone still gets notifications.
Notes
I am using pihole in a docker container, I've updated the pihole image to latest, and I updated firmware on router to latest. Phone is up-to-date. I've actually factory reset my phone that is how desperate I've gotten - but no dice - still won't give notifications if my pihole is router's DNS.
I can verify that without changing the block list, I can effectively have my pihole be my phone's DNS either way, but if I set it via router DNS, it breaks notifications for my phone only, while all other clients work exactly as expected.
My pihole gives no errors, or indication in logs that anything wrong is happening. I have even tried disabling blocking for the pihole entirely, or setting my phone client to not be a part of any block lists (including removing from Default group), and still notifications won't make it through unless I turn off the wifi when the pihole is the router's DNS.
Edit
I am hesitant to upload debug log from pihole - it has mac addresses/ip addresses that I'd kind of want to keep private? I'd rather provide any specific snippets anyone would want directly. You can also rule out pihole blocking issues based on my described tests above.