diff --git a/upgrade-helper.py b/upgrade-helper.py
index aef7ed1..98391f3 100755
--- a/upgrade-helper.py
+++ b/upgrade-helper.py
@@ -711,7 +711,18 @@ class UniverseUpdater(Updater):
         upgrade_pkggroups = []
 
         for layer_name, layer_recipes in self.recipes:
-            pkggroups = oe.recipeutils.get_recipe_upgrade_status(layer_recipes)
+            pkggroups_iter = oe.recipeutils.get_recipe_upgrade_status(layer_recipes)
+
+            # Collect results, logging any fetch error that terminates
+            # the iterator early (oe-core raises inside executor.map,
+            # which cannot be resumed after an exception).
+            pkggroups = []
+            try:
+                for group in pkggroups_iter:
+                    pkggroups.append(group)
+            except Exception as e:
+                W(" Fetch error terminated recipe scan for layer %s: %s" %
+                  (layer_name, str(e)))
 
             for group in pkggroups:
 
