diff --git a/bot/helper/listeners/jdownloader_listener.py b/bot/helper/listeners/jdownloader_listener.py
index 65501618bed..199cfbf0168 100644
--- a/bot/helper/listeners/jdownloader_listener.py
+++ b/bot/helper/listeners/jdownloader_listener.py
@@ -63,7 +63,9 @@ async def _jd_listener():
             except:
                 continue
 
-            all_packages = [pack["uuid"] for pack in packages]
+            all_packages = {pack["uuid"]: pack for pack in packages}
+            if not all_packages:
+                continue
             for d_gid, d_dict in list(jd_downloads.items()):
                 if d_dict["status"] == "down":
                     for index, pid in enumerate(d_dict["ids"]):
@@ -72,9 +74,9 @@ async def _jd_listener():
                     if len(jd_downloads[d_gid]["ids"]) == 0:
                         path = jd_downloads[d_gid]["path"]
                         jd_downloads[d_gid]["ids"] = [
-                            dl["uuid"]
-                            for dl in all_packages
-                            if dl["saveTo"].startswith(path)
+                            uid
+                            for uid, pk in all_packages.items()
+                            if pk["saveTo"].startswith(path)
                         ]
                     if len(jd_downloads[d_gid]["ids"]) == 0:
                         await remove_download(d_gid)