diff --git a/api/src/opentrons/hardware_control/modules/mod_abc.py b/api/src/opentrons/hardware_control/modules/mod_abc.py index 48d7f79e4b2..b0c2ba572ae 100644 --- a/api/src/opentrons/hardware_control/modules/mod_abc.py +++ b/api/src/opentrons/hardware_control/modules/mod_abc.py @@ -4,7 +4,7 @@ import re from pkg_resources import parse_version from typing import ClassVar, Mapping, Optional, cast, TypeVar - +from packaging.version import InvalidVersion from opentrons.config import IS_ROBOT, ROBOT_FIRMWARE_DIR from opentrons.drivers.rpi_drivers.types import USBPort @@ -87,8 +87,15 @@ def get_bundled_fw(self) -> Optional[BundledFirmware]: def has_available_update(self) -> bool: """Return whether a newer firmware file is available""" if self.device_info and self._bundled_fw: - device_version = parse_version(self.device_info["version"]) - available_version = parse_version(self._bundled_fw.version) + # try catch this + try: + device_version = parse_version(self.device_info["version"]) + except InvalidVersion: + device_version = parse_version("v0.0.0") + try: + available_version = parse_version(self._bundled_fw.version) + except InvalidVersion: + available_version = parse_version("v0.0.0") return cast(bool, available_version > device_version) return False