diff --git a/src/Mod/AddonManager/addonmanager_workers.py b/src/Mod/AddonManager/addonmanager_workers.py index 552914f72edb..196fd62e6aa6 100644 --- a/src/Mod/AddonManager/addonmanager_workers.py +++ b/src/Mod/AddonManager/addonmanager_workers.py @@ -1554,7 +1554,12 @@ def process_metadata_txt(self, repo: Addon, data: QtCore.QByteArray): repo.display_name ) ) - f = io.StringIO(data.data().decode("utf8")) + try: + f = io.StringIO(data.data().decode("utf8")) + except UnicodeDecodeError as e: + FreeCAD.Console.PrintWarning(str(e)) + FreeCAD.Console.PrintWarning(f" in package {repo.name}\n") + return while True: line = f.readline() if not line: @@ -1603,7 +1608,12 @@ def process_requirements_txt(self, repo: Addon, data: QtCore.QByteArray): "Downloaded requirements.txt for {}", ).format(repo.display_name) ) - f = io.StringIO(data.data().decode("utf8")) + try: + f = io.StringIO(data.data().decode("utf8")) + except UnicodeDecodeError as e: + FreeCAD.Console.PrintWarning(str(e)) + FreeCAD.Console.PrintWarning(f" in package {repo.name}\n") + return lines = f.readlines() for line in lines: break_chars = " <>=~!+#"