Even though nothing has changed, the task manager just has the device open, so it is marked as "busy".
If we make it to 100% verification, the flashing has succeeded, and so there is no need to propagate a failure error to the user, because the user thinks that something has gone wrong with the flashing process.
We should only show the error if the verification has failed.
Ultimately we should try to open the device exclusively so that no other process can have the device open to cause this error, but this is a more difficult problem.
A lot of users are getting errors that the unmount operation failed:
https://github.com/balena-io/etcher/issues/3542 https://github.com/balena-io/etcher/issues/3730 https://github.com/balena-io/etcher/issues/1370
...etc.
Even though the verification makes it to 100%.
We can see that even if a user has a task manager open, the device can be marked as busy:
https://github.com/balena-io/etcher/issues/1316
Even though nothing has changed, the task manager just has the device open, so it is marked as "busy".
If we make it to 100% verification, the flashing has succeeded, and so there is no need to propagate a failure error to the user, because the user thinks that something has gone wrong with the flashing process.
We should only show the error if the verification has failed.
Ultimately we should try to open the device exclusively so that no other process can have the device open to cause this error, but this is a more difficult problem.