AdguardHome + Unbound unstable connections and cannot load websites sometimes

did the following:

  1. Downloaded the version i wanted : AdGuard Home v0.107.57
  2. Removed the contents of: /mnt/dietpi_userdata/adguardhome (left only the data there)
  3. Extracted downloaded tar in : /mnt/dietpi_userdata/adguardhome
  4. Stopped the service that was already running AdGuardHome.service in: /etc/systemd/system/AdGuardHome.service
  5. Installed the new version with:
sudo ./AdGuardHome -s install
2025/06/11 17:57:44 [info] AdGuard Home, version v0.107.57
2025/06/11 17:57:44 [info] service: control action: install
2025/06/11 17:57:48 [info] service: started
2025/06/11 17:57:48 [info] service: action install has been done successfully on linux-systemd

And Its still running the newer version:

You would need to stop service first, replace the AGH executable only, not the whole folder content and restart AGH. There is nothing to install. Just to replace one file. I guess you created a 2nd instance of AGH now

Don’t forget to close the browser and delete cache to avoid any leftovers from before

Can you check running processes

ss -alnp | grep LISTEN
 ss -alnp | grep LISTEN
u_str LISTEN 0      0                                                 /run/systemd/journal/io.systemd.journal 1102                   * 0
u_str LISTEN 0      0                                                                    /run/systemd/private 12529                  * 0
u_str LISTEN 0      0                                              /run/systemd/userdb/io.systemd.DynamicUser 12531                  * 0
u_str LISTEN 0      0                                                       /run/systemd/io.system.ManagedOOM 12532                  * 0
u_str LISTEN 0      0                                                              /run/systemd/fsck.progress 12543                  * 0
u_str LISTEN 0      0                                                             /run/systemd/journal/stdout 12552                  * 0
u_str LISTEN 0      0                                                                        /run/docker.sock 12749                  * 0
u_str LISTEN 0      0                                                   /run/containerd/containerd.sock.ttrpc 12867                  * 0
u_str LISTEN 0      0                                                         /run/containerd/containerd.sock 12870                  * 0
u_str LISTEN 0      0                                                            /var/run/docker/metrics.sock 1426564095             * 0
u_str LISTEN 0      0      /run/containerd/s/9c5d28d2b908760ff8d92b9bd66a8254f1017530dab798343ce598caa99d3b32 1426564518             * 0
u_str LISTEN 0      0      /run/containerd/s/a0d811c6cfb9f2282de6f83ff6c34427073c976ab96e1b4902c5e279d6f1b9ff 1426564547             * 0
u_str LISTEN 0      0      /run/containerd/s/c9fa725588cd36cf0477de7cb0ccecaf0367cf40aae1094df5cdd2ecc24d17ad 1426564664             * 0
u_str LISTEN 0      0      /run/containerd/s/7e1328824083e2fb83fa589b01f681b8d91729919f9a94eee85d728b91a15930 1426568580             * 0
u_str LISTEN 0      0      /run/containerd/s/34b104a435cebad651c449875480c0efb9b741b1325a8f70066b80868c3d9244 1426569440             * 0
u_str LISTEN 0      0      /run/containerd/s/b727d8781b6fc7fc53c7d823ebf9038c704b0f0f5cc21039056efe90c4b41462 1426569453             * 0
u_str LISTEN 0      0                                            /var/run/docker/libnetwork/3649c443058c.sock 1426570270             * 0
u_str LISTEN 0      0      /run/containerd/s/2109ec8f7135ee3a557e41cf75cfae56fb4b24306287c2c6180c0aad1a38b5e0 1426570536             * 0
u_str LISTEN 0      0                                                                                       s 1426572483             * 0
u_seq LISTEN 0      0                                                                       /run/udev/control 12554                  * 0
tcp   LISTEN 0      4096                                                                              0.0.0.0:443              0.0.0.0:*
tcp   LISTEN 0      4096                                                                            127.0.0.1:8088             0.0.0.0:*
tcp   LISTEN 0      4096                                                                              0.0.0.0:2283             0.0.0.0:*
tcp   LISTEN 0      4096                                                                              0.0.0.0:81               0.0.0.0:*
tcp   LISTEN 0      4096                                                                              0.0.0.0:80               0.0.0.0:*
tcp   LISTEN 0      32                                                                                0.0.0.0:21               0.0.0.0:*
tcp   LISTEN 0      1000                                                                              0.0.0.0:22               0.0.0.0:*
tcp   LISTEN 0      1024                                                                              0.0.0.0:8001             0.0.0.0:*
tcp   LISTEN 0      4096                                                                              0.0.0.0:9002             0.0.0.0:*
tcp   LISTEN 0      1000                                                                                 [::]:22                  [::]:*
tcp   LISTEN 0      4096                                                                                    *:53                     *:*
tcp   LISTEN 0      4096                                                                                    *:8083                   *:*
tcp   LISTEN 0      4096                                                                                    *:8086                   *:*
tcp   LISTEN 0      4096                                                                                    *:3001                   *:*

let’s try to clean up the installation

dietpi-backup
cd /mnt/dietpi_userdata/adguardhome
AdGuardHome -s uninstall
dietpi-software reinstall 126

This should get us back to the initial status. Afterwards we can try to downgrade AGH

  1. Did the backup
  2. The command had to change a little bit for uninstall, this is the one who worked for me:
sudo ./AdGuardHome -s uninstall
2025/06/12 18:57:58 [info] AdGuard Home, version v0.107.57
2025/06/12 18:57:58 [info] service: control action: uninstall
2025/06/12 18:58:06 [info] service: action uninstall has been done successfully on linux-systemd
  1. After running the command I still see file inside the folder:
ls
AdGuardHome  AdGuardHome.sig  AdGuardHome.yaml  CHANGELOG.md  LICENSE.txt  README.md  agh-backup  data
  1. Reinstalled again
sudo dietpi-software reinstall 126
[  OK  ] DietPi-Software | Initialised database
[  OK  ] DietPi-Software | Reading database

 DietPi-Software
─────────────────────────────────────────────────────
 Mode: Automated reinstall

[  OK  ] DietPi-Software | Reinstalling AdGuard Home: powerful network-wide ads & trackers blocking DNS server
[ SUB1 ] DietPi-Backup > Backup
[ SUB2 ] DietPi-Services > stop
[  OK  ] DietPi-Services | stop : cron
[  OK  ] DietPi-Services | stop : docker
[  OK  ] DietPi-Services | stop : grafana-server
[  OK  ] DietPi-Services | stop : influxdb
[  OK  ] DietPi-Services | stop : vaultwarden
[  OK  ] DietPi-Services | stop : vsftpd
[ INFO ] DietPi-Backup | Checking for required APT packages: rsync
[ INFO ] DietPi-Backup | Backup to /mnt/usb-disk/dietpi-backup in progress, please wait...
[  OK  ] DietPi-Backup | cp -a /etc/debian_version /mnt/usb-disk/dietpi-backup/data/etc/debian_version
[  OK  ] DietPi-Backup | touch /mnt/usb-disk/dietpi-backup/data
[ SUB2 ] DietPi-Services > start
[  OK  ] DietPi-Services | start : vsftpd
[  OK  ] DietPi-Services | start : vaultwarden
[  OK  ] DietPi-Services | start : influxdb
[  OK  ] DietPi-Services | start : grafana-server
[  OK  ] DietPi-Services | start : docker
[  OK  ] DietPi-Services | start : cron
[  OK  ] DietPi-Backup: Backup | Completed
[  OK  ] DietPi-Backup | Completed
[  OK  ] DietPi-Software | DietPi-Userdata validation: /mnt/dietpi_userdata

 DietPi-Software
─────────────────────────────────────────────────────
 Step: Checking for conflicts and missing inputs


 DietPi-Software
─────────────────────────────────────────────────────
 Step: Checking for prerequisite software

[  OK  ] DietPi-Software | mkdir -p /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads /var/www /opt /usr/local/bin
[  OK  ] DietPi-Software | chown dietpi:dietpi /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads
[  OK  ] DietPi-Software | chmod 0775 /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads
[ SUB1 ] DietPi-Services > stop
[  OK  ] DietPi-Services | stop : cron
[  OK  ] DietPi-Services | stop : docker
[  OK  ] DietPi-Services | stop : grafana-server
[  OK  ] DietPi-Services | stop : influxdb
[  OK  ] DietPi-Services | stop : vaultwarden
[  OK  ] DietPi-Services | stop : vsftpd
[ INFO ] DietPi-Software | APT update, please wait...
Hit:1 https://repos.influxdata.com/debian buster InRelease
Hit:2 https://deb.debian.org/debian bookworm InRelease
Get:3 https://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:4 https://apt.grafana.com stable InRelease [7661 B]
Get:5 https://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Hit:6 https://download.docker.com/linux/debian bookworm InRelease
Get:7 https://deb.debian.org/debian bookworm-backports InRelease [59.4 kB]
Hit:8 https://dietpi.com/apt bookworm InRelease
Get:9 https://dietpi.com/apt all InRelease [27.5 kB]
Get:10 https://archive.raspberrypi.com/debian bookworm InRelease [55.0 kB]
Get:11 https://deb.debian.org/debian-security bookworm-security/main arm64 Packages [262 kB]
Get:12 https://deb.debian.org/debian bookworm-backports/main arm64 Packages.diff/Index [63.3 kB]
Get:13 https://deb.debian.org/debian bookworm-backports/main arm64 Packages T-2025-06-12-0204.25-F-2025-06-07-2004.41.pdiff [5930 B]
Get:13 https://deb.debian.org/debian bookworm-backports/main arm64 Packages T-2025-06-12-0204.25-F-2025-06-07-2004.41.pdiff [5930 B]
Get:14 https://apt.grafana.com stable/main arm64 Packages [363 kB]
Get:15 https://archive.raspberrypi.com/debian bookworm/main arm64 Packages [538 kB]
Fetched 1485 kB in 9s (161 kB/s)
Reading package lists...
[  OK  ] DietPi-Software | APT update

 DietPi-Software
─────────────────────────────────────────────────────
 Step: Installing AdGuard Home: powerful network-wide ads & trackers blocking DNS server

[ INFO ] DietPi-Software | AdGuard Home executable "/mnt/dietpi_userdata/adguardhome/AdGuardHome" already exists. Download and install steps will be skipped.
 - If you want to update AdGuard Home, please use the internal updater from web UI.
 - If you need to reinstall (e.g. broken instance), please manually remove the executable "/mnt/dietpi_userdata/adguardhome/AdGuardHome" and rerun "dietpi-software (re)install 126".
[ INFO ] DietPi-Software | APT install apache2-utils, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
apache2-utils is already the newest version (2.4.62-1~deb12u2).
0 upgraded, 0 newly installed, 0 to remove and 65 not upgraded.
[  OK  ] DietPi-Software | APT install apache2-utils
[  OK  ] DietPi-Software | usermod -d /mnt/dietpi_userdata/adguardhome -s /usr/sbin/nologin adguardhome
[  OK  ] DietPi-Software | chown -R adguardhome:adguardhome /mnt/dietpi_userdata/adguardhome
[  OK  ] DietPi-Software | chmod 0755 /mnt/dietpi_userdata/adguardhome/AdGuardHome
[  OK  ] DietPi-Software | chmod 0600 /mnt/dietpi_userdata/adguardhome/AdGuardHome.yaml

 DietPi-Software
─────────────────────────────────────────────────────
 Step: Finalising install

[ INFO ] DietPi-Software | Enabling installed services
[  OK  ] DietPi-Software | systemctl --no-reload enable adguardhome
[  OK  ] DietPi-Software | systemctl daemon-reload
2025-06-12 19:04:52 [ INFO ] DietPi-RAMlog | Storing /var/log to /var/tmp/dietpi/logs/dietpi-ramlog_store...
2025-06-12 19:04:52 [  OK  ] DietPi-RAMlog | Stored /var/log to /var/tmp/dietpi/logs/dietpi-ramlog_store.

 DietPi-Software
─────────────────────────────────────────────────────
 Step: Install completed

[  OK  ] DietPi-Survey | Purging survey data
[ SUB1 ] DietPi-Services > restart
[  OK  ] DietPi-Services | restart : vsftpd
[  OK  ] DietPi-Services | restart : vaultwarden
[  OK  ] DietPi-Services | restart : influxdb
[  OK  ] DietPi-Services | restart : grafana-server
[  OK  ] DietPi-Services | restart : docker
[  OK  ] DietPi-Services | restart : cron
[ INFO ] DietPi-Software | Starting installed services not controlled by DietPi-Services
[  OK  ] DietPi-Software | systemctl start adguardhome

Done.

After all that I still see older version:

sudo ./AdGuardHome --version
AdGuard Home, version v0.107.57

In the WebUI it still shows newer version:

did you already clear your browser cache?

I tried in different browsers that i never opened it. Did the same steps again to be sure and now i got the correct version..

does the old version is behaving differently?

Im giving it a try for a few hours to see…

So far so good… nothing seems to be broken… Maybe I could try using unbound again?

Yes

Installed Unbound again and everything seems to be back to normal… AGH v0.167.62 seems to be broken with hiccups and a lot of disconnections… so far version v0.107.57 is the last one I found more stable for me.

You could report the problem to AGH developers

Now after a few days it has come back in older version too… I noticed that if I restart the raspberry or stop the services after an upgrade it works as it should and with time it starts to slow down or responding to DNS query or something that’s what I’m suspecting… Anything that can come to mind of whats happening?

as said, maybe you can ask AGH developer for assistance and how to debug this further

The executable is in /opt/adguardhome. Only config and data is in /mnt/dietpi_userdata/adguardhome.

Generally, such can be checked with:

systemctl cat adguardhome

ExecStart= shows the executed file.

How could I have overlooked that, mea culpa! :smiley:

Mine says /mnt/dietpi_userdata/adguardhome

 sudo systemctl cat adguardhome
# /etc/systemd/system/adguardhome.service
[Unit]
Description=AdGuard Home (DietPi)
Wants=network-online.target nss-lookup.target
After=network-online.target
Before=nss-lookup.target
StartLimitIntervalSec=60
StartLimitBurst=3

[Service]
User=adguardhome
AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW
ExecStart=/mnt/dietpi_userdata/adguardhome/AdGuardHome
ExecReload=/mnt/dietpi_userdata/adguardhome/AdGuardHome -s reload
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

So I was correct :rofl:

@MichaIng

I mixed it up :sweat_smile:, one of these executables which cannot be told to consistently operate on another directory than the one it is located.

Here is the reason why a reinstall did not update it:

If there is an updater embedded, we often do not update software during a reinstall, but only do setup around it, since there might be reasonable steps involved by the embedded updater. However, overall I think it causes more issues/confusion than it helps.

Not sure what AdGuardHome -s install or AdGuardHome -s uninstall do, and their output is not helpful either. Maybe they just check for, create or remove a systemd service?

So to install a particular version:

systemctl stop adguardhome
mv ./new/AdGuardHome /mnt/dietpi_userdata/adguardhome/AdGuardHome
systemctl start adguardhome

Regarding the issue: did/do you explicitly have (upstream) DoH enabled, using AdGuard’s own DoH server? Because logs are full of

received addr=https://family.adguard-dns.com:443/dns-query ... timeout

with relatively few request to Unbound or Quad9. Maybe it uses either own DoH as fallback, but either it suffers from the same issue, or it even causes the issue. If you do not configure this explicitly, does the older/functional AdGuard Home do these queries as well? And is there an option to disable upstream DoH entirely (means that the related Quad9 upstream would not work anymore), and does it help?