Snap stuck, can't use/remove/reinstall

So I tried uninstalling some snaps. It hasn’t gone well.

I initiated an uninstall of Signal via the Snap Store where the process hung and froze in place. I let it run with no visible progress for maybe 20 minutes before closing it and restarting my computer. I hopped on the terminal to check snap list and saw that Signal was still installed, albeit now disabled. I figured the snap store was busted and tried uninstalling it via terminal. Process hung there too. I restarted again. snap list showed me both apps remained installed and disabled.

That’s where I stand now, and likely where I will stand for a long, long time, because I have no other choice. Any attempts to remove these packages result in:

“error: snap “signal-desktop” has “remove-snap” change in progress”

If I try reinstalling, I get:

“snap “signal-desktop” is already installed, see ‘snap help refresh’”

Because I’m only allowed one picture, here’s a big screenshot of snap list, snap changes, snap tasks 95, and snap tasks 96:

Also, I did successfully uninstall an app called “losslesscut” with no issue right before all of this. I don’t know what’s different about Signal and the Snap Store that caused such a catastrophic failure, and I’m not trying to find out what other snaps might brick themselves.

TL:DR My snaps cannot be used, uninstalled, or reinstalled. 16.2 GiB of my disk space is being held hostage. It’s not the gibibytes I mind, it’s the principle.

I believe this issue came up in this thread as well, where @zyga asked me to detail my own experience, so here it is.

Thank you for reporting this.

Could you please also list the contents of /root/snap/signal-desktop and /root/snap/snap-store? It would help us to know more about why their removal failed.

Thanks for reporting this. I think it is related to an internal case https://warthogs.atlassian.net/browse/SNAPDENG-37129

@mhtchd As far as I can tell, “signal-desktop” lives in “/var/lib/snapd/snap/” Here’s an ls -R of that directory:

917

./917: bin etc gpu-2404 lib lists meta opt README.md renovate.json snap usr

./917/bin: gpu-2404-cleanup gpu-2404-wrapper gpu-2604-cleanup gpu-2604-wrapper graphics-core22-cleanup graphics-core22-wrapper

./917/etc: sensors3.conf sensors.d

./917/etc/sensors.d:

./917/gpu-2404:

./917/lib: x86_64-linux-gnu

./917/lib/x86_64-linux-gnu: libnss_sss.so.2

./917/lists: mesa-2404.amd64.list mesa-2404.ppc64el.list mesa-2604.amd64.list mesa-2604.ppc64el.list mesa-core22.amd64.list mesa-core22.ppc64el.list nvidia-core22.arm64.list mesa-2404.arm64.list mesa-2404.riscv64.list mesa-2604.arm64.list mesa-2604.riscv64.list mesa-core22.arm64.list mesa-core22.riscv64.list mesa-2404.armhf.list mesa-2404.s390x.list mesa-2604.armhf.list mesa-2604.s390x.list mesa-core22.armhf.list nvidia-core22.amd64.list

./917/meta: gui hooks snap.yaml

./917/meta/gui: icon.png signal-desktop.desktop signal-desktop.png

./917/meta/hooks: configure

./917/opt: Signal

./917/opt/Signal: chrome_100_percent.pak chrome_crashpad_handler libEGL.so libGLESv2.so libvulkan.so.1 LICENSES.chromium.html resources signal-desktop v8_context_snapshot.bin chrome_200_percent.pak icudtl.dat libffmpeg.so libvk_swiftshader.so LICENSE.electron.txt locales resources.pak snapshot_blob.bin vk_swiftshader_icd.json

./917/opt/Signal/locales: af.pak bg.pak da.pak es.pak fil.pak gu.pak hu.pak km-KH.pak lt.pak mr-IN.pak pa-IN.pak ru.pak sr.pak te.pak uk-UA.pak zh-HK.pak af-ZA.pak bn-BD.pak de.pak et-EE.pak fi.pak he.pak id.pak kn-IN.pak lv-LV.pak mr.pak pl.pak sk.pak sv.pak th.pak ur.pak zh-TW.pak am.pak bn.pak el.pak et.pak fr.pak hi-IN.pak it.pak kn.pak lv.pak ms.pak pt-BR.pak sk-SK.pak sw.pak tl-PH.pak vi.pak ar.pak bs-BA.pak en-GB.pak eu.pak ga-IE.pak hi.pak ja.pak ko.pak mk-MK.pak my.pak pt-PT.pak sl.pak ta-IN.pak tr.pak yue.pak az-AZ.pak ca.pak en-US.pak fa-IR.pak gl-ES.pak hr-HR.pak ka-GE.pak ky-KG.pak ml-IN.pak nb.pak ro.pak sl-SI.pak ta.pak ug.pak zh-CN.pak bg-BG.pak cs.pak es-419.pak fa.pak gu-IN.pak hr.pak kk-KZ.pak lt-LT.pak ml.pak nl.pak ro-RO.pak sq-AL.pak te-IN.pak uk.pak zh-Hant.pak

./917/opt/Signal/resources: app.asar app.asar.unpacked app-update.yml org.signalapp.enable-backups.policy org.signalapp.plaintext-export.policy org.signalapp.view-aep.policy

./917/opt/Signal/resources/app.asar.unpacked: node_modules

./917/opt/Signal/resources/app.asar.unpacked/node_modules: fs-xattr @signalapp

./917/opt/Signal/resources/app.asar.unpacked/node_modules/fs-xattr: build

./917/opt/Signal/resources/app.asar.unpacked/node_modules/fs-xattr/build: Release

./917/opt/Signal/resources/app.asar.unpacked/node_modules/fs-xattr/build/Release: xattr.node

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*: libsignal-client ringrtc sqlcipher*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/libsignal-client: prebuilds*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/libsignal-client/prebuilds: linux-x64*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/libsignal-client/prebuilds/linux-x64: @signalapp+libsignal-client.node*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/ringrtc: build*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/ringrtc/build: linux*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/ringrtc/build/linux: libringrtc-x64.node*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/sqlcipher: prebuilds*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/sqlcipher/prebuilds: linux-x64*

./917/opt/Signal/resources/app.asar.unpacked/node_modules/@signalapp*/sqlcipher/prebuilds/linux-x64: @signalapp+sqlcipher.node*

./917/snap: command-chain manifest.yaml snapcraft.yaml

./917/snap/command-chain: desktop-launch gpu-2404-wrapper hooks-configure-fonts run

./917/usr: bin lib share

./917/usr/bin: eglgears_wayland egltri_wayland es2gears_x11 glxdemo glxinfo vkgears.x86_64-linux-gnu eglgears_wayland.x86_64-linux-gnu egltri_wayland.x86_64-linux-gnu es2gears_x11.x86_64-linux-gnu glxdemo.x86_64-linux-gnu glxinfo.x86_64-linux-gnu xeglgears eglgears_x11 egltri_x11 es2_info glxgears peglgears xeglgears.x86_64-linux-gnu eglgears_x11.x86_64-linux-gnu egltri_x11.x86_64-linux-gnu es2_info.x86_64-linux-gnu glxgears.x86_64-linux-gnu peglgears.x86_64-linux-gnu xeglthreads eglinfo es2gears_wayland es2tri glxheads signal-desktop-wrapper xeglthreads.x86_64-linux-gnu eglinfo.x86_64-linux-gnu es2gears_wayland.x86_64-linux-gnu es2tri.x86_64-linux-gnu glxheads.x86_64-linux-gnu vkgears

./917/usr/lib: x86_64-linux-gnu

./917/usr/lib/x86_64-linux-gnu: libdecor-0.so.0 libfreebl3.chk libfreeblpriv3.chk libnspr4.so libnssckbi.so libnssdbm3.so libplc4.so libsmime3.so libsoftokn3.so libxcb-xkb.so.1 libxkbcommon-x11.so.0 libdecor-0.so.0.200.2 libfreebl3.so libfreeblpriv3.so libnss3.so libnssdbm3.chk libnssutil3.so libplds4.so libsoftokn3.chk libssl3.so libxcb-xkb.so.1.0.0 libxkbcommon-x11.so.0.0.0

./917/usr/share: doc lintian man mesa-demos

./917/usr/share/doc: libdecor-0-0 libnspr4 libnss3 libnss-sss libxcb-xkb1 libxkbcommon-x11-0 mesa-utils mesa-utils-bin

./917/usr/share/doc/libdecor-0-0: changelog.Debian.gz copyright

./917/usr/share/doc/libnspr4: changelog.Debian.gz copyright

./917/usr/share/doc/libnss3: changelog.Debian.gz copyright

./917/usr/share/doc/libnss-sss: changelog.Debian.gz copyright

./917/usr/share/doc/libxcb-xkb1: changelog.Debian.gz copyright

./917/usr/share/doc/libxkbcommon-x11-0: changelog.Debian.gz copyright

./917/usr/share/doc/mesa-utils: changelog.Debian.gz copyright

./917/usr/share/doc/mesa-utils-bin: changelog.Debian.gz copyright

./917/usr/share/lintian: overrides

./917/usr/share/lintian/overrides: libnspr4 libnss3 libnss-sss

./917/usr/share/man: man1

./917/usr/share/man/man1: es2gears.1.gz es2_info.1.gz es2tri.1.gz glxdemo.1.gz glxgears.1.gz glxheads.1.gz glxinfo.1.gz

./917/usr/share/mesa-demos: arch.rgb bw.rgb geartrain.dat girl2.rgb girl.rgb isosurf.dat reflect.rgb s128.rgb terrain.dat tile.rgb tree2.rgba tree3.rgb wrs_logo.rgb

*************

And an ls -R of /var/lib/snapd/snap/snap-store/:

1310

./1310: bin meta snap

./1310/bin: data lib snap-store

./1310/bin/data: flutter_assets icudtl.dat

./1310/bin/data/flutter_assets: AssetManifest.bin assets FontManifest.json fonts NativeAssetsManifest.json NOTICES.Z packages shaders version.json

./1310/bin/data/flutter_assets/assets: 2.0x app-center.desktop app-center-packagekit.desktop app-center.png app-center.svg app-center-updates.desktop error.svg

./1310/bin/data/flutter_assets/assets/2.0x: app-center.png

./1310/bin/data/flutter_assets/fonts: MaterialIcons-Regular.otf

./1310/bin/data/flutter_assets/packages: handy_window ubuntu_test yaru

./1310/bin/data/flutter_assets/packages/handy_window: assets

./1310/bin/data/flutter_assets/packages/handy_window/assets: handy-window.css handy-window-dark.css

./1310/bin/data/flutter_assets/packages/ubuntu_test: assets

./1310/bin/data/flutter_assets/packages/ubuntu_test/assets: test.png test.svg

./1310/bin/data/flutter_assets/packages/yaru: assets

./1310/bin/data/flutter_assets/packages/yaru/assets: fonts yaru_icons.otf

./1310/bin/data/flutter_assets/packages/yaru/assets/fonts: Ubuntu-BI.ttf Ubuntu-B.ttf Ubuntu-LI.ttf Ubuntu-L.ttf Ubuntu-MI.ttf UbuntuMono-Regular.ttf Ubuntu-M.ttf Ubuntu-RI.ttf Ubuntu-R.ttf

./1310/bin/data/flutter_assets/shaders: ink_sparkle.frag stretch_effect.frag

./1310/bin/lib: libapp.so libgtk_plugin.so libhandy_window_plugin.so liburl_launcher_linux_plugin.so libyaru_window_linux_plugin.so libflutter_linux_gtk.so libhandy_flutter.so libscreen_retriever_linux_plugin.so libwindow_manager_plugin.so

./1310/meta: gui hooks snap.yaml

./1310/meta/gui: show-updates.desktop snap-store.desktop

./1310/meta/hooks: configure

./1310/snap: command-chain manifest.yaml snapcraft.yaml

./1310/snap/command-chain: desktop-launch gpu-2404-wrapper hooks-configure-fonts run**

********

This was on Fedora 43, if it matters.

Sorry, I don’t have access to Jira. Could you tell or copy/paste me more about the issue?

@immutabletrash those seem to be the (extracted) contents of /var/lib/snapd/snaps/signal-desktop_917.snap and /var/lib/snapd/snaps/snap-store_1310.snap but could you instead paste here the outputs of

  1. sudo ls /root/snap/signal-desktop, and,
  2. sudo ls /root/snap/snap-store

as those are the paths where the first error occurred while removing those snaps. There was some unexpected data which was safeguarded from unintentional deletion.

There is another crucial issue here that the remove change for both snaps is stuck on “Undo“ of remove snap hook (which has no undo handler). This also needs further investigation. There was a similar issue observed in Bug #2130315 “error: snap “thunderbird” has “remove-snap” change...” : Bugs : snapd package : Ubuntu but it was fixed in Snapd 2.73. Since you already have 2.75.2, there is possibly another similar issue.

In the meantime, to recover from the hanging change you could follow the steps similar to those mentioned by Miguel in that launchpad bug.

My apologies, I initially thought you were mistaken, because I didn’t see a snap folder in my root directory, but now I realize you meant my “/root/” directory. I’m still new.

sudo ls -R /root/snap: mesa-2404 snap-store

/root/snap/mesa-2404: 1165 1781 912 common current

/root/snap/mesa-2404/1165:

/root/snap/mesa-2404/1781:

/root/snap/mesa-2404/912:

/root/snap/mesa-2404/common:

/root/snap/snap-store:

So in short, I do not have a “/root/snap/signal-desktop” directory, and my “/root/snap/snap-store” directory is empty.

The instructions in the link you provided (Comment 16 for bug 2130315) worked. I undid the undo state and got snapd unstuck. Thank you so much!