diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 82b73c66d9..f3c5a07f82 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -738,11 +738,15 @@ class ThreeMFWorkspaceReader(WorkspaceReader): @staticmethod def _loadMetadata(file_name: str) -> Dict[str, Dict[str, Any]]: - archive = zipfile.ZipFile(file_name, "r") + result = dict() + try: + archive = zipfile.ZipFile(file_name, "r") + except zipfile.BadZipFile: + Logger.logException("w", "Unable to retrieve metadata from {fname}: 3MF archive is corrupt.".format(fname = file_name)) + return result metadata_files = [name for name in archive.namelist() if name.endswith("plugin_metadata.json")] - result = dict() for metadata_file in metadata_files: try: