Resolving "synology dsm insufficient system capacity for update"

Posted on Sep 11, 2022

Lately I’ve been having issues upgrading the DSM version on my Synology DS418 play. The updater refused to download/start the update with the error “Insufficient system capacity for update”.

DSM update error

The previous time I had this error I tried messing around with files on my root partition until the error disappeared. I can’t remember the details but it was a lot of trial and error, and in general shouldn’t be necessary.

But today I got the same error when trying to do another update. According to Synology support, the issue might be caused by third party packages that install files somewhere where they shouldn’t. I thought this might be because I installed docker, since that’s not “officially” supported but I really didn’t wanted to get rid of it (or remove it temporarily in the first place). And since it’s still sort of an official package, just not findable by default, I assumed it would behave properly.

Analyzing disk usage

The total space used on the root partition was near 2GB

root@/: # df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        2.3G  1.9G  345M  85% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G  236K  3.9G   1% /dev/shm
tmpfs           3.9G   15M  3.8G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           3.9G  2.1M  3.9G   1% /tmp
/dev/vg1000/lv  3.5T  965G  2.6T  28% /volume1

However, when summing up all directories in the root

root@/: # du -hs usr config dev etc etc.defaults initrd lost+found mnt opt root run tmp usr var var.defaults
996M	usr
0	config
236K	dev
3.6M	etc
2.4M	etc.defaults
4.0K	initrd
4.0K	lost+found
4.0K	mnt
16K	opt
28K	root
15M	run
2.1M	tmp
145M	var
5.8M	var.defaults

Summing these values 996+1+4+3+15+2+145+6, I got 1.2GB at most. Over a gig, but not near 2 GB.

Then I realized I completely ignored .dotfiles

root@/: # du -hs .??*
677M	.SynoUpgrade.tar
1.6M	.log.junior
36K	.old_patch_info
4.0K	.rnd
32M	.syno
20K	.system_info

and I noticed a rather old .SynoUpgrade.tar

root@Sien:/ # ls -lh .SynoUpgrade.tar
-rw-r--r-- 1 root root 681M Sep 13  2020 .SynoUpgrade.tar

So probably an old update that somehow didn’t get removed. Moving it to the storage partition I ended up with the expected 1.2GB of usage, and the install could continue :)

root@/: # df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        2.3G  1.2G 1022M  54% /
...

Howver, after the update I noticed I was low on space again

root@/: # df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        2.3G  1.7G  541M  76% /
...

Looking around for another install tarbal left behind, I quickly found a large file, space-preserve in /usr/syno/synoinstall

root@/usr/syno/synoinstall/: # ls -lh
total 497M
-rw-r--r-- 1 root root 513M Sep 11 10:26 space-preserve

but I suspect this file is actually meant to “claim” the space that’s required for upgrades so I’ll leave it for now and see if the error reappears during a later upgrade.

TL;DR

If you get the error “insufficient system capacity for update”, check if you have an old .SynoUpdate.tar in your /