[BUG] DNS query spam using network DVR

Server Version#: 1.41.4.9463

I have Plex running on my TrueNAS and it’s connected to a Vu+ Uno 4K SE DVR over the network. Everything works as expected in general (recordings work etc.).
However, lately I noticed in my pi-hole that Plex is massively trying to query a host via DNS in the network when recording.

In my logs I got 5000 DNS queries from plex around ~10 / minute. At first I could not understand the logs, as it’s querying “h3rox4e4” which did not make any sense to me at first. But after checking the Plex logs:

Feb 24, 2025 12:43:59.337 [139762131798840] DEBUG - DVR:Device: Discovering and refreshing all devices.
Feb 24, 2025 12:43:59.337 [139762131798840] DEBUG - Grabber: HDHomerun discovered 0 compatible devices.
Feb 24, 2025 12:43:59.337 [139762131798840] DEBUG - DVR:Device: Testing grabber HDHomerun device device://tv.plex.grabbers.hdhomerun/H3ROX4E4 at http://192.168.1.243:6083
Feb 24, 2025 12:43:59.337 [139762131798840] DEBUG - DVR:Device: Device device://tv.plex.grabbers.hdhomerun/H3ROX4E4 was already known, refreshing database info
Feb 24, 2025 12:43:59.337 [139762131798840] DEBUG - [HCl#2d] HTTP requesting GET http://192.168.1.243:6083/discover.json
Feb 24, 2025 12:43:59.341 [139762164308792] DEBUG - [HttpClient/HCl#2d] HTTP/1.0 (0.0s) 200 response from GET http://192.168.1.243:6083/discover.json
Feb 24, 2025 12:43:59.341 [139762131798840] DEBUG - [HCl#2e] HTTP requesting GET http://192.168.1.243:6083/lineup_status.json
Feb 24, 2025 12:43:59.345 [139762164308792] DEBUG - [HttpClient/HCl#2e] HTTP/1.0 (0.0s) 200 response from GET http://192.168.1.243:6083/lineup_status.json
Feb 24, 2025 12:43:59.350 [139762131798840] DEBUG - DVR:Device: Device was alive, refreshed device://tv.plex.grabbers.hdhomerun/H3ROX4E4.
Feb 24, 2025 12:43:59.350 [139762131798840] DEBUG - [HCl#2f] HTTP requesting POST http://127.0.0.1:32600/devices/discover

I now think I understand. Plex probably assigned H3ROX4E4 to my device and tries to query the DVR via this name. However I did never manually assign any name to the DVR in the Plex interface and I only ever specified the IP:Port of the network DVR.

Therefore this seems to be a bug, that even if I connect the network DVR to Plex via IP:Port it seems to query the “internal”(?) name of the device.

Proposed solution:
#1 Plex should not use an internal name to query a device over the network
#2 Plex should not send that many queries if it already knows that there is no devices with that name.

That (H3ROX4E4) is your emulated HDHomeRun’s device ID. It is not assigned by Plex Media Server, rather it is provided by the device itself (or whatever emulation it’s running). Every HDHR device has one, so emulated devices have to provide one as well.

PMS doesn’t use DNS to discover (emulated) HDHomeRun tuners’ IP addresses. It uses a different method, SSDP (Simple Service Discovery Protocol). The general flow is that it sends SSDP search queries via multicast and then awaits replies from compliant devices. If the reply is from an HDHomeRun tuner, it adds it to its list of available tuners.

In the event that you set the device up manually, it’s even simpler. It just tests for its presence by querying some known URLs (as shown in your log snippet) occasionally. (It does this if the device was discovered via SSDP as well.)

So it seems unlikely that Plex Media Server is generating these DNS queries. I have a real HDHomeRun tuner in my setup and no such queries are generated by my servers. How did you determine that it was PMS sending them?

Thank you for the detailed response.

I do not have the detailed insight into this topic that you have. I’m only trying to puzzle together the pieces.

I’m very certain that the PMS container does indeed send out these queries, because of the following details and observations:

First a short description of my current setup:

  • PMS runs as an App (using the official TrueNAS Docker “App”) on my TrueNAS box. It uses the official PMS Docker Container
  • I have a Vu+ Uno 4K SE with the HDTunerProxy plugin installed
  • The plugin is available at 192.168.1.243:6083 in my LAN and Plex is set-up using this address in the PMS DVR / LiveTV section

Now my conclusion why these queries are generated by the PMS container:

When I first noticed the queries in my pihole I was confused and tried to isolate the actual app / service that sends out this query. I could see that they originate from the TrueNAS box, so I shut down all of the running apps / container on my NAS and rebooted to see if this would happen with no apps/containers running.

Observation #1:
After the reboot there were no more queries trying to resolve h3rox4e4. So I started each app, one after another, to see if one of them would generate the requests.
After doing this, I can consistently reproduce the DNS queries showing up in my pihole by restarting the Plex container (with all other containers turned off).
Each time I restart the PMS container it sends out exactly one of these queries.

Observation #2:
I looked at the pihole charts, showing the queries to h3rox4e4 and the time they were sent out. And it correlates with the recording schedule of my Plex DVR. I had two recordings scheduled at that day. On both of those, while Plex was recording, the queries significantly increased to ~10 / minute. Once Plex was done recording those queries also stopped.

I do not know about HDHomeRun devices, as I do not own one.
I’m simply connecting dots here.

I could see why PMS would call this once to discover devices. But I cannot see why it would keep trying to query over and over while recording, even though it’s setup manually using IP:Port. To me this looks like a bug.

Any further help/investigation would be appreciated, thank you :slight_smile: !

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.