dangerzone.errors.ImageNotPresentException: Unable to find an image with digest 622c60f3d0944014d5fd45df24142eee17c73d1b9ceca6dce636fc5bf9a43a2c
We have reproduced it internally, and the problem is that Podman may report a different digest than the expected one, if multi-arch images are involved. More specifically:
This is not a usual combination since the user needs to remove an internal Dangerzone directory. In principle though, it affects users across all OSes.
user@host:~$ ./dev_scripts/env.py --distro debian --version trixie build --full --prod
user@host:~$ ./dev_scripts/env.py --distro debian --version trixie run bash
user@container:~$ rm -rf ~/.local/share/dangerzone/
user@container:~$ podman image prune -af
user@container:~$ podman pull ghcr.io/freedomofpress/dangerzone/v1
user@container:~$ dangerzone
<failure>
podman rmi ghcr.io/freedomofpress/dangerzone/v1:latest
user@dangerzone:~$ podman version
Client: Podman Engine
Version: 5.4.2
API Version: 5.4.2
Go Version: go1.24.4
Built: Sun Dec 21 18:42:01 2025
Build Origin: Debian
OS/Arch: linux/amd64
user@dangerzone:~$ podman info -f 'json'
{
"host": {
"arch": "amd64",
"buildahVersion": "1.39.3",
"cgroupManager": "cgroupfs",
"cgroupVersion": "v2",
"cgroupControllers": [
"cpu",
"memory",
"pids"
],
"conmon": {
"package": "conmon_2.1.12-4_amd64",
"path": "/usr/bin/conmon",
"version": "conmon version 2.1.12, commit: unknown"
},
"cpus": 8,
"cpuUtilization": {
"userPercent": 6.84,
"systemPercent": 1.79,
"idlePercent": 91.37
},
"databaseBackend": "sqlite",
"distribution": {
"distribution": "debian",
"version": "13",
"codename": "trixie"
},
"eventLogger": "file",
"freeLocks": 2048,
"hostname": "dangerzone",
"idMappings": {
"gidmap": [
{
"container_id": 0,
"host_id": 1000,
"size": 1
},
{
"container_id": 1,
"host_id": 2000,
"size": 2000
}
],
"uidmap": [
{
"container_id": 0,
"host_id": 1000,
"size": 1
},
{
"container_id": 1,
"host_id": 2000,
"size": 2000
}
]
},
"kernel": "7.0.14-arch1-1",
"logDriver": "k8s-file",
"memFree": 9679360000,
"memTotal": 33358118912,
"networkBackend": "netavark",
"networkBackendInfo": {
"backend": "netavark",
"version": "netavark 1.14.0",
"package": "netavark_1.14.0-2_amd64",
"path": "/usr/lib/podman/netavark",
"dns": {
"version": "aardvark-dns 1.14.0",
"package": "aardvark-dns_1.14.0-3_amd64",
"path": "/usr/lib/podman/aardvark-dns"
}
},
"ociRuntime": {
"name": "crun",
"package": "crun_1.21-1_amd64",
"path": "/usr/bin/crun",
"version": "crun version 1.21\ncommit: 10269840aa07fb7e6b7e1acff6198692d8ff5c88\nrundir: /tmp/storage-run-1000/crun\nspec: 1.0.0\n+SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +CRIU +WASM:wasmedge +YAJL"
},
"os": "linux",
"remoteSocket": {
"path": "/tmp/storage-run-1000/podman/podman.sock",
"exists": true
},
"rootlessNetworkCmd": "pasta",
"serviceIsRemote": false,
"security": {
"apparmorEnabled": false,
"capabilities": "CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT",
"rootless": true,
"seccompEnabled": true,
"seccompProfilePath": "/usr/share/containers/seccomp.json",
"selinuxEnabled": false
},
"slirp4netns": {
"executable": "/usr/bin/slirp4netns",
"package": "slirp4netns_1.2.1-1.1_amd64",
"version": "slirp4netns version 1.2.1\ncommit: 09e31e92fa3d2a1d3ca261adaeb012c8d75a8194\nlibslirp: 4.8.0\nSLIRP_CONFIG_VERSION_MAX: 5\nlibseccomp: 2.6.0"
},
"pasta": {
"executable": "/usr/bin/pasta",
"package": "passt_0.0~git20250503.587980c-2+deb13u1_amd64",
"version": ""
},
"swapFree": 0,
"swapTotal": 0,
"uptime": "2h 58m 19.00s (Approximately 0.08 days)",
"variant": "",
"linkmode": "dynamic"
},
"store": {
"configFile": "/home/user/.config/containers/storage.conf",
"containerStore": {
"number": 0,
"paused": 0,
"running": 0,
"stopped": 0
},
"graphDriverName": "overlay",
"graphOptions": {
},
"graphRoot": "/home/user/.local/share/containers/storage",
"graphRootAllocated": 737595678720,
"graphRootUsed": 613539483648,
"graphStatus": {
"Backing Filesystem": "extfs",
"Native Overlay Diff": "true",
"Supports d_type": "true",
"Supports shifting": "false",
"Supports volatile": "true",
"Using metacopy": "false"
},
"imageCopyTmpDir": "/var/tmp",
"imageStore": {
"number": 1
},
"runRoot": "/tmp/storage-run-1000/containers",
"volumePath": "/home/user/.local/share/containers/storage/volumes",
"transientStore": false
},
"registries": {
},
"plugins": {
"volume": [
"local"
],
"network": [
"bridge",
"macvlan",
"ipvlan"
],
"log": [
"k8s-file",
"none",
"passthrough",
"journald"
],
"authorization": null
},
"version": {
"APIVersion": "5.4.2",
"Version": "5.4.2",
"GoVersion": "go1.24.4",
"GitCommit": "",
"BuiltTime": "Sun Dec 21 18:42:01 2025",
"Built": 1766335321,
"BuildOrigin": "Debian",
"OsArch": "linux/amd64",
"Os": "linux"
}
}
user@dangerzone:~$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
ghcr.io/freedomofpress/dangerzone/v1 latest 9f3234b9c53e 6 days ago 1.07 GB
What happened?
A user has reported the following error in their Debian installation:
What is the problem?
We have reproduced it internally, and the problem is that Podman may report a different digest than the expected one, if multi-arch images are involved. More specifically:
ghcr.io/freedomofopress/dangerzone/v1:latest), the reported image digest will besha256:527da9012343066523c5561af64328dd13f79bf74b6c612d31fa8563b2e8ae2a. This is the digest of the multi-arch manifest.sha256:622c60f3d0944014d5fd45df24142eee17c73d1b9ceca6dce636fc5bf9a43a2c. This the digest of thelinux/amd64manifest.linux/amd64one. This is what confuses Dangerzone and throws an error. Note that this is a bug, but not a security issue.Who is affected?
Our current understanding is that to trigger this bug, a user needs to:
~/.local/share/dangerzonedirectory, but not the pulled Dangerzone image.This is not a usual combination since the user needs to remove an internal Dangerzone directory. In principle though, it affects users across all OSes.
How to reproduce?
A programmatic way to reproduce this on Linux (easier if you are a dev) is:
Workaround
If you remove the pulled Dangerzone image, things should work again:
Linux distribution
Debian Trixie
Dangerzone version
0.11.0
Podman info
Document conversion logs
Additional info
No response