diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index c8d1c85273..6de4ddc998 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -378,7 +378,11 @@ class ThreeMFWorkspaceReader(WorkspaceReader): Logger.log("e", "Could not find 'metadata/position' in extruder stack file") raise RuntimeError(msg) extruder_position = extruder_config.get("metadata", "position") - extruder_stack = global_stack.extruders[extruder_position] + try: + extruder_stack = global_stack.extruders[extruder_position] + except KeyError: + Logger.log("w", "Could not find the matching extruder stack to override for position %s", extruder_position) + return None # Override the given extruder stack extruder_stack.deserialize(extruder_file_content) @@ -701,6 +705,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): if global_stack.getProperty("machine_extruder_count", "value") > 1: # deserialize new extruder stack over the current ones (if any) stack = self._overrideExtruderStack(global_stack, extruder_file_content) + if stack is None: + continue elif self._resolve_strategies["machine"] == "new": new_id = extruder_stack_id_map[container_id]