Description
Describe the request
Reinstall pluggable discovery and monitor tools of the builtin
package if the tool executable is not found.
Describe the current behavior
Arduino CLI automatically installs pluggable discovery and pluggable monitor tools of the builtin
package when missing or updatable. These tools allow Arduino CLI to find the "ports" used for communication with Arduino boards.
It can happen that the installation process is interrupted or interfered with.
🙁 If a problem during the installation results in the creation of the tool's release installation folder without the tool executable, Arduino CLI can no longer do discovery. It will not automatically recover from this condition and the user must manually delete the incomplete installation in order to restore Arduino CLI to functionality.
To reproduce
$ arduino-cli version
arduino-cli.exe Version: git-snapshot Commit: 2c2a5cc6 Date: 2023-04-22T13:21:59Z
$ ls "C:\\Users\\per\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\serial-discovery"
1.4.0/
$ ls "C:\\Users\\per\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\serial-discovery\\1.4.0"
LICENSE.txt serial-discovery.exe*
$ rm "C:\\Users\\per\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\serial-discovery\1.4.0\\serial-discovery.exe"
$ arduino-cli board list
Error starting discovery: discovery builtin:serial-discovery process not started: exec: "C:\\Users\\per\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\serial-discovery\\1.4.0\\serial-discovery": file does not exist
No boards found.
Arduino CLI version
Operating system
Windows, Linux
Operating system version
Windows 11, Ubuntu 22.04
Additional context
Originally reported at https://forum.arduino.cc/t/ide-2-0-lost-all-com-ports/960650
This situation is more problematic for Arduino IDE users, since the error message about the missing tool is not visible to them and they only notice the symptom of the IDE not seeing their ports.
It might seem unlikely for this interrupted installation to occur under real world conditions, but the equivalent issue with Boards Manager producing incomplete tools installations has been reported by users periodically ever since the introduction of Boards Manager, at sufficient volume for Arduino Support to consider it worth a Help Center article: