@girish I think I understand what is happening here, so thought it best to write on this open thread as it may be "helpful" to others (helpful in quotations because there doesn't seem to be a nice solution!).
The problem appears to be that at some point, for whatever reason, the initial attempt to pull the cloudron/mail:3.11.2 image failed unexpectedly mid-pull (a system reboot perhaps). This seems to create a set of "dangling layers" related to that image that are hidden somewhere and cannot be found or removed with "docker system prune".
When I try to pull cloudron/mail:3.11.2 from the CLI, I see the following:
root@cloudron:/var/lib/docker# docker pull registry.docker.com/cloudron/mail:3.11.2
3.11.2: Pulling from cloudron/mail
445a6a12be2b: Already exists
4cfe0cdc770e: Already exists
e6a0eb1fa9b7: Already exists
e995e5b957f9: Already exists
e6d226089461: Already exists
b3243df2776e: Already exists
debd247c1af3: Already exists
ea1f575bfbef: Already exists
566e1eaf48e1: Already exists
68da526a8544: Already exists
2f3677647d18: Already exists
90984d402264: Already exists
802deede2955: Already exists
1861003a8fe7: Already exists
524cf22ec2b3: Already exists
7604fee16283: Already exists
930850c4bc07: Already exists
844343c15467: Already exists
367e21d14918: Already exists
6880f0889c4f: Already exists
5a544c4b0196: Already exists
7fb39aa7d081: Already exists
c10af7a3bade: Already exists
30c062ec98da: Already exists
956058cafb63: Already exists
e5c1b069b2dc: Already exists
27d50608d341: Already exists
d6d99d73528f: Already exists
35ad04d78685: Already exists
0fa0098bd9c2: Already exists
1289a176c743: Extracting [==================================================>] 690B/690B
bc9e5abd8c84: Download complete
8c8b3e2950c7: Download complete
025029896e5c: Download complete
fc053eff195d: Download complete
failed to register layer: error creating overlay mount to /var/lib/docker/overlay2/af6ccf9d7fbcd56d80cf2b84a6cedadc60e0f1615d06cf0947b140f244fb200d/merged: too many levels of symbolic links
As you can see, most layers are found as already existing, but when it hits layer 1289a176c743 it extracts it and then fails with the symbolic link error. No matter what I can do I cannot find and delete that.
Others appear to have had this problem with docker preventing future pulls where there are problems with the initial pull. See e.g. here, here link text and the current open issue and here.
This docker problem is compounded with Cloudron. For other, more bespoke, systems you could just move to a different version of whatever it is you are pulling. But with Cloudron the whole package is delivered at once and as a complete package, so if one pull fails the entire update fails, leaving you stuck.
The only solution I can find is listed here, specifically
systemctl stop docker; rm -Rf /var/lib/docker; systemctl start docker
I don't like the sound of doing that! What would the consequences of that be for all my in-app configurations, etc. Would this not be a fresh install?
The good news is that I can pull all other cloudron/mail images, including 3.11.3 and 3.11.4. So I imagine I can move around this issue if there were an update available that bundled any other version of cloudron/mail than 3.11.2. Is that possible or will my cloudron never allow me to access that update until version 7.6.1 is applied?