Pi-hole DHCP on; Bose Soundtouch speakers disappearing

Expected Behaviour:

Bose Soundtouch speakers will connect to the Bose Soundtouch app over wifi. Speakers should remain visible in the app and controllable in the app, as well as connect to other speakers.

Actual Behaviour:

Since I started using pi-hole as my DHCP server (my new router doesn't allow me to set up DNS alone), connected speakers are vanishing from the network. Attempts to reconnect them (through the Bose app / Connect Speaker) are sporadically successful, but equally frequently fail at the "connect to network" stage after the password is entered. Once speakers are back on the network, they frequently are 'lost' (do not appear when the app is open and 'Searching for Speaker'.

My setup is a single modem/router (Virgin's "Vincent") with DHCP on the router turned off, and DHCP on the pi-hole (Raspberry Pi) turned on.

Things I've tried include:

  • assigning static DHCP leases to the speakers (Settings > DHCP > bottom of page)
  • pinging the static IP addresses of the speakers (the ones that the app finds reply; the ones the app can't find do not)
  • looking for traffic generated by the speakers. Queries appear for both the found and 'dropped' speakers, all for non-blacklisted domains.
  • Looking on the modem/router. The 'dropped' speakers appear as 'connected' on the router's list of devices on the wifi network.

I am a rookie at all of this, but it looks like pi-hole is working fine as an adblocker, but the DHCP server is not managing the speakers well. I'm not sure what to do to further diagnose the problem or ideally fix it.

Questions I have:

  • When I'm attempting to reconnect a speaker and failing, the error messages are usually that the credentials are invalid, or that the request is timing out. Is there any way to monitor what requests the speaker is making and why the requests are being rejected?
  • Can I somehow force the speakers to be 'remembered' by DHCP and not kicked off? Is there anything beyond static leases I can do to avoid having them removed from the network (even with a static lease)?

Debug Token:

https://tricorder.pi-hole.net/dXzIu6CB/

Tail/follow the Pi-hole logs live with below one:

pihole tail

And check what messages appear when you power on a Bose speaker.
The log lines that have dnsmasq-dhcp in them are the ones for the DHCP process and the others are mostly DNS queries.

An example for a full DHCP exchange below for my hak01 host with MAC address 00:16:3e:xx:xx:xx:

$ pihole tail
[..]
20:32:58 dnsmasq-dhcp[8137]: DHCPDISCOVER(eth0) 10.0.0.145 00:16:3e:xx:xx:xx
20:32:58 dnsmasq-dhcp[8137]: DHCPOFFER(eth0) 10.0.0.145 00:16:3e:xx:xx:xx
20:32:58 dnsmasq-dhcp[8137]: DHCPREQUEST(eth0) 10.0.0.145 00:16:3e:xx:xx:xx
20:32:58 dnsmasq-dhcp[8137]: DHCPACK(eth0) 10.0.0.145 00:16:3e:xx:xx:xx hak01

EDIT: Oh it could be that you only see the DHCPREQUEST and DHCPACK when the DHCP lease is just renewed instead of acquiring a new fresh DHCP lease like above!

Check the "illustration" on the wiki:

Not that I know of.
But as a last resort and if the Bose speakers allow, you could manually configure static IP details on the speakers themselves.