diff --git a/pmb/install/_install.py b/pmb/install/_install.py
index 4b8917c68cbfbc473689a57252698949a44a5db7..2f8fe4933cb318f97a6819455b12ec966ab17e3f 100644
--- a/pmb/install/_install.py
+++ b/pmb/install/_install.py
@@ -1291,8 +1291,10 @@ def create_device_rootfs(args: PmbArgs, step, steps):
             unlocker = pmb.parse.depends.package_provider(
                 "postmarketos-fde-unlocker", install_packages, chroot
             )
-            if unlocker["pkgname"] not in install_packages:
-                install_packages += [unlocker["pkgname"]]
+            if not unlocker:
+                raise RuntimeError("Full disk encryption enabled but unable to find any suitable FDE unlocker app")
+            if unlocker.pkgname not in install_packages:
+                install_packages += [unlocker.pkgname]
         else:
             install_packages += ["postmarketos-base-nofde"]
 
diff --git a/pmb/parse/depends.py b/pmb/parse/depends.py
index 2d05269c1f42c5fcba29bce5def91ef4e21333f2..13e2f922d2606e8bbdf8bbb56689a39f8d0b0ba8 100644
--- a/pmb/parse/depends.py
+++ b/pmb/parse/depends.py
@@ -29,11 +29,10 @@ def package_from_aports(pkgname_depend):
     return {"pkgname": pkgname, "depends": apkbuild["depends"], "version": version}
 
 
-def package_provider(pkgname, pkgnames_install, suffix: Chroot = Chroot.native()):
+def package_provider(pkgname, pkgnames_install, suffix: Chroot = Chroot.native()) ->  pmb.core.apkindex_block.ApkindexBlock | None:
     """
     :param pkgnames_install: packages to be installed
-    :returns: a block from the apkindex: {"pkgname": "...", ...}
-              or None (no provider found)
+    :returns: ApkindexBlock object or None (no provider found)
     """
     # Get all providers
     arch = suffix.arch
@@ -107,7 +106,7 @@ def package_from_index(
     # Binary package outdated
     if (
         package_aport
-        and pmb.parse.version.compare(package_aport["version"], provider["version"]) == 1
+        and pmb.parse.version.compare(package_aport["version"], provider.version) == 1
     ):
         logging.verbose(pkgname_depend + ": binary package is outdated")
         return package_aport