diff --git a/pynitrokey/nk3/admin_app.py b/pynitrokey/nk3/admin_app.py index a6285e3f..9c82df37 100644 --- a/pynitrokey/nk3/admin_app.py +++ b/pynitrokey/nk3/admin_app.py @@ -79,11 +79,15 @@ def from_int(cls, i: int) -> Optional["FactoryResetStatus"]: def check(cls, i: int, msg: str) -> None: status = FactoryResetStatus.from_int(i) if status != FactoryResetStatus.SUCCESS: - if status: - error = str(status) - else: - error = f"unknown error {i:x}" - raise Exception(f"{msg}: {error}") + if status is None: + raise Exception(f"Unknown error {i:x}") + if status == FactoryResetStatus.NOT_CONFIRMED: + error = "Operation was not confirmed with touch" + elif status == FactoryResetStatus.APP_NOT_ALLOWED: + error = "The application does not support factory reset through nitropy" + elif status == APP_FAILED_PARSE: + error = "The application name must be utf-8" + local_critical(f"{msg}: {error}", support_hint=False) @enum.unique