Closed
Description
Describe the problem
If the upload failed due to the busy serial port, I would love to see that on the error object. Currently, the ServiceError
object contains the following info:
{
"code": 13,
"details": "Failed uploading: uploading error: exit status 1",
"metadata": {}
}
During the upload, the UploadResponse
's out_stream
contains ......
and the err_stream
is empty.
However, I can see the following messages logged by the CLI daemon process:
{"level":"info","msg":"Performing 1200-bps touch reset on serial port /dev/cu.usbmodem14301","phase":"board reset","time":"2022-06-15T15:19:37+02:00"}
TOUCH: error during reset: opening port at 1200bps: Serial port busy
The CLI knows what went wrong, but with the current errors, it's impossible to show the real cause to the users.
To reproduce
- Build the IDE2 from the sources,
- Open the Java IDE, connect a board, upload, and start the serial monitor so that the serial port will be busy,
- Start the IDE2 and debug the IDE2 backend code,
- Start an upload from IDE2,
- See the error object
{
"code": 13,
"details": "Failed uploading: uploading error: exit status 1",
"metadata": {}
}
Expected behavior
The error object contains what is logged by the daemon process.
Arduino CLI version
arduino-cli Version: 0.23.0 Commit: 899dc91 Date: 2022-06-06T14:23:44Z
Operating system
macOS
Operating system version
12.3.1
Additional context
Maybe related: #1762
Issue checklist
- I searched for previous reports in the issue tracker
- I verified the problem still occurs when using the nightly build
- My report contains all necessary details