Guide data missing for single channel

I recently switched to Channels and it's great. The only problem I'm having is with the guide. On most days (not all), a single channel is missing guide data. It's always the same channel: the local ABC affiliate. I've tried OTA with guide USA-OTA98033 (channel 4.1) with a Quatro and Frontier FIOS guide USA-WA67390-X with a Prime. This is a fresh Channels install using a docker container on unraid.

I can restore the data by manually refreshing using the web UI. The logs don't show any errors nor can I see any obvious difference in the logs between the automatic and manual refresh.

The automatic guide refresh seems to occur between 9 and 9:30 am and I can restore the missing channel manually almost immediately after the automatic refresh finishes so it doesn't seem to be due to a provider problem.

Thanks in advance for any advice.

Doing a manual refresh loads any missing guide mappings from the SiliconDust servers. These are saved and then the next automatic refresh should use them. Are you saying the data disappears at the next refresh?

It may be the signal is weak and the HDHR auto-rescan every few days is dropping the channel from your lineup, so then the dvr doesn't fetch data for it.

Yes, the data disappears almost every day (that is, I'm manually refreshing the guide data multiple times per week).

The channel is always present in the guide; it just has no data when this happens.

Very strange.

In the logs during guide download it says "for xxx stations", does that number differ between automatic and manual guide downloads?

This is Interesting.

When I first setup channels I only had a quatro, combining OTA and HDHR Premium TV. The problem with this channel occurred in that setup.

As a result of the premium TV shutdown, I put my HDHR prime back into service so I now have 2 HDHRs: the quatro and a prime. In an effort to isolate the problem I disabled the problematic channel on the quatro and am now getting it from the prime. So my current setup is that the quatro has 1 channel enabled (which works fine) and the prime has 52 (one of which is ABC).

In the automatic refresh this morning, only the guide data for the prime was refreshed and it only downloaded 51 stations:

2019/04/03 09:18:00 [DVR] Fetching guide data for 51 stations in USA-WA67390-X @ 2019-04-03 9:00AM

The manual refresh downloaded both the quatro and the prime with 52 stations.

2019/04/03 18:13:53 [DVR] Fetching guide data for 1 stations in USA-OTA98033 @ 2019-04-03 6:00PM
2019/04/03 18:13:54 [DVR] Fetching guide data for 52 stations in USA-WA67390-X @ 2019-04-03 6:00PM

More information from today's refresh.

First a correction of a previous statement: I said the channel is always present in the guide when the refresh fails. That's only true for the guide on my apple TVs. The web guide does not list the channel.

Today's automatic refresh again missed the channel, confirmed in the logs and visiting the web guide.
The refresh also didn't update the OTA guide although I still see the OTA channel in the guide.

I manually refreshed the prime guide and it picked up the missing channel and fetched the OTA guide.

I'm happy to provide logs or any other debugging information, if needed.

Can you try restarting the dvr service via systemd?

When I first noticed the problem and just had the quatro I was restarting the DVR every night as part of my docker backups. I disabled the nightly restart to see if the problem would go away. It did not.

I just restarted the DVR manually and will check on the guide refresh tomorrow.

I've been doing some testing over the last several days and am able to reliably reproduce the problem.

As a reminder I'm running the DVR as a docker container on Unraid. I'm also running the 'CA Appdata Backup / Restore' plugin to backup the appdata for my docker containers. The plugin restarts the container after performing the backup.

If I enable the plugin for the DVR docker and schedule the backup to occur when the DVR is doing it's own backup, the next automatic guide refresh will skip the single OTA channel and the first channel in the Prime.

Here are some logs to show the sequence of events:

Works (no docker backup):
2019/04/10 03:05:15 [SYS] Created database snapshot: backup-20190410.030515
2019/04/10 03:05:15 [SYS] Removing old backup backup-20190320.030438
2019/04/10 09:36:00 [DVR] Fetching guide data for 1 stations in USA-OTA98033 @ 2019-04-10 9:30AM
2019/04/10 09:36:00 [DVR] indexed 8 airings (1 channels) [0s fetch, 0s index]
2019/04/10 09:36:00 [DVR] Fetching guide data for 50 stations in USA-WA67390-X @ 2019-04-10 9:30AM

Broken (with docker backup):
2019/04/11 03:05:44 [SYS] Starting Channels DVR v2019.03.18.2111 (linux-x86_64 pid:8) in /channels-dvr/data
2019/04/11 03:05:45 [HDR] Found 2 devices
2019/04/11 03:05:45 [SYS] Started HTTP Server
2019/04/11 03:05:48 [DVR] Recording engine started in /shares/DVR
2019/04/11 03:05:48 [SYS] Bonjour service running for dvr-9eb332265b68.local. [192.168.86.9]
2019/04/11 03:05:48 [SYS] Created database snapshot: backup-20190411.030548
2019/04/11 03:05:48 [SYS] Removing old backup backup-20190320.221519
2019/04/11 03:05:58 [IDX] Pruned 25 expired airings from USA-OTA98033 in 29.384833ms.
2019/04/11 03:05:59 [IDX] Pruned 884 expired airings from USA-WA67390-X in 571.484136ms.
2019/04/11 09:35:00 [DVR] Fetching guide data for 49 stations in USA-WA67390-X @ 2019-04-11 9:30AM

Honestly I would not recommend restarting the container, and external backups are unnecessary as the software does it own backups. The more often you restart the server forcefully, the greater the risk that you will inadvertently corrupt the settings or guide databases.

The list of extra channel mappings is stored in the settings.db and can be seen in http://x:8089/settings. It almost sounds like your backup process is reverting the container to an earlier state. Can you check that settings endpoint to see if the custom channel mappings are still present before you force a guide reload (which will add the mappings to settings).