arduino-cli icon indicating copy to clipboard operation
arduino-cli copied to clipboard

As a gRPC consumer of the CLI, I need better error codes to distinguish between errors

Open kittaakos opened this issue 3 years ago • 11 comments
trafficstars

Describe the request

To keep the startup performance OK, the IDE2 does not run a core and library index update before initializing the gRPC client. The Arduino core client initialization in the IDE2 happens the following way:

  • create the gRPC core client,
  • init the core client,
  • run the index update asynchronously.

However, this does not always work. The command line CLI auto-magically updates the core and lib indexes on the first run (https://github.com/arduino/arduino-cli/pull/1043). This is not available when consuming the CLI's capabilities via the gRPC APIs.

On the first start (directories/data is missing or empty), the gRPC init step will fail with the following errors:

[
  { "code": 9, "message": "Loading index file: loading json index file /Users/a.kitta/Library/Arduino15/package_index.json: open /Users/a.kitta/Library/Arduino15/package_index.json: no such file or directory" },
  { "code": 9, "message": "Error loading hardware platform: discovery builtin:serial-discovery not found" },
  { "code": 9, "message": "Error loading hardware platform: discovery builtin:mdns-discovery not found" },
  { "code": 9, "message": "Loading index file: reading library_index.json: open /Users/a.kitta/Library/Arduino15/library_index.json: no such file or directory" }
]

When the IDE2 sees these errors, IDE2 knows that this is the first start, and the core and lib indexes must be updated before running the init phase of the gRCP core client. The above error is recoverable in IDE2.


There are "ignorable" errors. For example, if I use the https://arduino.esp8266.com/stable/package_esp8266com_index.json 3rd party URL, and install the 3.0.0 version (see the steps here), then there will be an error status:

{ "code": 9, "message": "Error loading hardware platform: loading platform release esp8266:[email protected]: loading boards: skipping loading of boards esp8266:esp8266:espduino: malformed custom board options" }

This error does not cause any CLI error, so should be ignored.

Describe the current behavior

All errors the IDE2 receives from the CLI have code: 9. There is no way to detect if the error is recoverable, non-recoverable, or ignorable.

It would be great if some details about the error would be available.

Arduino CLI version

0.23.0

Operating system

macOS

Operating system version

12.3.1

Additional context

Related

  • https://github.com/arduino/arduino-cli/pull/1251
  • https://github.com/arduino/arduino-ide/issues/1438
  • https://github.com/arduino/arduino-ide/issues/1692
  • https://github.com/arduino/arduino-ide/issues/2319
  • https://github.com/arduino/arduino-ide/issues/2484
  • https://github.com/arduino/arduino-ide/issues/2525
  • https://github.com/arduino/arduino-ide/issues/2546
  • https://github.com/arduino/arduino-ide/issues/2658
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed-because-the-connected-party-did-not-properly-respond-after-a-period-of-time/1088609
  • https://forum.arduino.cc/t/ide-hangs-on-startup-library-index-json-the-system-cannot-find-the-file-specified/1083198
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1095206
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-builtin-serial-discovery-not-found/1093871
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder/1121605
  • https://forum.arduino.cc/t/ide-hangs-on-startup-library-index-json-the-system-cannot-find-the-file-specified/1158693
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed-because-the-connected-party-did-not-properly-respond/1165487
  • https://forum.arduino.cc/t/ide-hangs-on-startup-library-index-json-the-system-cannot-find-the-file-specified/1163600
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed-because-the-connected-party-did-not-properly-respond/1170617
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder/1178505
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder-the-system-cannot-find-the-file-specified/1188338
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-builtin-serial-discovery-not-installed/1188387
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder-the-system-cannot-find-the-path-specified/1188389
  • https://forum.arduino.cc/t/ide-hangs-on-startup-loading-json-index-file-the-system-cannot-find-the-file-specified/1189751
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-builtin-serial-discovery-not-found/1188386
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-14-unavailable-no-connection-established/1180682
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder-access-is-denied/1187511
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-builtin-serial-discovery-not-found/1188347
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-getaddrinfo-enotfound-localhost/1188982
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-teensy-teensy-discovery-not-found/1188978
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-reading-inventory-file-while-parsing-config-yaml-control-characters-are-not-allowed/1188345
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-builtin-serial-discovery-not-found/1188383
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-teensy-teensy-discovery-not-found/1188380
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder-the-system-cannot-find-the-path-specified/1188377
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-builtin-serial-discovery-not-found/1188371
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-reading-inventory-file-while-parsing-config-yaml-line-14-found-unexpected-end-of-stream/1188976
  • https://forum.arduino.cc/t/ide-hangs-on-startup-dial-tcp-lookup-downloads-arduino-cc-no-such-host/1188973
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-builtin-serial-discovery-not-found/1188362
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-builtin-serial-discovery-not-installed/1188357
  • https://forum.arduino.cc/t/ide-hangs-on-startup-downloading-builtin-serial-monitor-0-11-0-tool-server-responded-with-403-forbidden/1188355
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder-the-system-cannot-find-the-path-specified/1188353
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder-the-filename-directory-name-or-volume-label-syntax-is-incorrect/1188352
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder/1190925
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-teensy-teensy-discovery-not-installed/1191048
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1192852
  • https://forum.arduino.cc/t/ide-hangs-on-startup-library-index-json-the-system-cannot-find-the-file-specified/1198917
  • https://forum.arduino.cc/t/ide-hangs-on-startup-library-index-json-the-system-cannot-find-the-file-specified/1199168
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-loading-hardware-platform-discovery-teensy-teensy-discovery-not-found/1199521
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1199652
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1212408
  • https://forum.arduino.cc/t/ide-hangs-on-startup-received-rst-stream-with-code-1/1215708
  • https://forum.arduino.cc/t/ide-hangs-on-startup-due-to-attempting-to-access-a-path-from-my-old-windows-username/1224635
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1224877
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-openpgp-signature-expired/1235703
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-builtin-serial-discovery-not-found/1237554
  • https://forum.arduino.cc/t/ide-hangs-on-startup-panic-runtime-error-slice-bounds-out-of-range/1238396
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-builtin-serial-discovery-not-found/1237548
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder/1237547
  • https://forum.arduino.cc/t/ide-hangs-on-startup-library-index-json-the-system-cannot-find-the-file-specified/1236239
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-builtin-serial-discovery-not-found/1235513
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1235124
  • https://forum.arduino.cc/t/ide-hangs-on-startup-teensy-teensy-discovery-not-found/1232184
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-openpgp-signature-expired/1231869
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1235704
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1248007
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-builtin-serial-discovery-not-found/1248036
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-an-attempt-was-made-to-access-a-socket-in-a-way-forbidden-by-its-access-permissions/1248682
  • https://forum.arduino.cc/t/ide-hangs-on-startup-library-index-json-the-system-cannot-find-the-file-specified/1249757
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1247363
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1246487
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-openpgp-signature-expired/1244308
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1242983
  • https://forum.arduino.cc/t/ide-hangs-on-startup-proxyconnect/1241744
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1241558
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1253697
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1255872
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed-because-the-connected-party-did-not-properly-respond/1257689
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed-because-the-connected-party-did-not-properly-respond/1255065
  • https://forum.arduino.cc/t/ide-hangs-on-startup-dial-tcp-lookup-downloads-arduino-cc-no-such-host/1261340
  • https://forum.arduino.cc/t/ide-hangs-on-startup-wsarecv-a-connection-attempt-failed/1261338
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-openpgp-signature-expired/1268121
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-openpgp-signature-expired/1267952
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1261133
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-downloading-index/1261030
  • https://forum.arduino.cc/t/ide-hangs-on-startup-dial-tcp-lookup-downloads-arduino-cc-getaddrinfow/1261342
  • https://forum.arduino.cc/t/ide-hangs-on-startup-dial-tcp-lookup-downloads-arduino-cc-no-such-host/1261337
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-openpgp-signature-expired/1271647
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1274915
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-openpgp-signature-expired/1275931
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-openpgp-signature-expired/1279109
  • https://forum.arduino.cc/t/ide-hangs-on-startup-wsarecv-an-existing-connection-was-forcibly-closed-by-the-remote-host/1281049
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1281312
  • https://forum.arduino.cc/t/ide-hangs-on-startup-downloading-builtin-ctags-5-8-arduino11-tool-server-responded-with-403-forbidden/1282754
  • https://forum.arduino.cc/t/ide-hangs-on-startup-dial-tcp-lookup-downloads-arduino-cc-no-such-host/1284714
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1286657
  • https://forum.arduino.cc/t/ide-hangs-on-startup-403-forbidden/1287230
  • https://forum.arduino.cc/t/ide-hangs-on-startup-loading-json-index-file-open-the-system-cannot-find-the-file-specified/1288712
  • https://forum.arduino.cc/t/ide-hangs-on-startup-invalid-path-creating-config-dir/1288779
  • https://forum.arduino.cc/t/ide-hangs-on-startup-received-rst-stream-with-code-0/1290162
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1296199
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder-the-system-cannot-find-the-file-specified/1291346
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1296588
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1296981
  • https://forum.arduino.cc/t/ide-hangs-on-startup-updatableboards-failed/1297994
  • https://forum.arduino.cc/t/re-ide-hangs-on-startup-read-connection-reset-by-peer/1298555
  • https://forum.arduino.cc/t/ide-hangs-on-startup-www-netspark-com-certificate-is-not-trusted/1298799
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder/1299399
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed-because-the-connected-party-did-not-properly-respond/1291314
  • https://forum.arduino.cc/t/ide-hangs-on-startup-listen-tcp-127-0-0-1-bind-cant-assign-requested-address/1291350
  • https://forum.arduino.cc/t/ide-hangs-on-startup-failed-to-connect-to-proxy/1300985
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed-because-the-connected-party-did-not-properly-respond/1300964
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed/1302736
  • https://forum.arduino.cc/t/ide-hangs-on-startup/1303466
  • https://forum.arduino.cc/t/ide-hangs-on-startup-attempt-was-made-to-access-a-socket-in-a-way-forbidden/1303517
  • https://forum.arduino.cc/t/ide-hangs-on-startup-failed-to-initialize-the-cli-configuration/1303672
  • https://forum.arduino.cc/t/ide-hangs-on-startup-failed-to-initialize-the-cli-configuration/1304068
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed/1304537
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder/1304648
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1305377
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-signature-expired/1305441
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-13-internal-received-rst-stream-with-code-0/1306514
  • https://forum.arduino.cc/t/ide-hangs-on-startup-invalid-additional-url/1308264
  • https://forum.arduino.cc/t/ide-hangs-on-startup-waiting-discovery-process-termination-exit-status-0xc0000409/1308354
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder/1309314
  • https://forum.arduino.cc/t/ide-hangs-on-startup-dial-tcp-lookup-downloads-arduino-cc-no-such-host/1309661
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed-because-the-connected-party-did-not-properly-respond/1314582
  • https://forum.arduino.cc/t/ide-hangs-on-startup-invalid-additional-url/1317437
  • https://forum.arduino.cc/t/ide-hangs-on-startup-13-internal-received-rst-stream-with-code-1/1318487
  • https://forum.arduino.cc/t/ide-hangs-on-startup-mkdir-c-users-folio-access-is-denied/1318991
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1320064
  • https://forum.arduino.cc/t/ide-hangs-on-startup-dial-tcp-lookup-downloads-arduino-cc-no-such-host/1325884
  • https://forum.arduino.cc/t/ide-hangs-on-startup-14-unavailable-read-econnreset/1329939
  • https://forum.arduino.cc/t/ide-hangs-on-startup-call-cancelled/1330111
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-teensy-teensy-discovery-not-found/1330577
  • https://forum.arduino.cc/t/ide-hangs-on-startup-wsarecv-une-connexion-existante/1330940
  • https://forum.arduino.cc/t/ide-hangs-on-startup-openpgp-invalid-signature-rsa-verification-failure/1331325
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-no-connection-could-be-made-because-the-target-machine-actively-refused-it/1333950
  • https://forum.arduino.cc/t/ide-hangs-on-startup/1334666
  • https://forum.arduino.cc/t/ide-hangs-on-startup-internal-received-rst-stream-with-code-1/1334932
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-an-attempt-was-made-to-access-a-socket-in-a-way-forbidden-by-its-access-permissions/1340222
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-signature-expired/1340546
  • https://forum.arduino.cc/t/ide-hangs-on-startup/1345315
  • https://forum.arduino.cc/t/ide-hangs-on-startup-received-rst-stream-with-code-2-triggered-by-internal-client-error-protocol-error/1348285
  • https://forum.arduino.cc/t/ide-hangs-on-startup-signature-expired-is-your-system-clock-set-correctly/1348936
  • https://forum.arduino.cc/t/ide-hangs-on-startup/1349127
  • https://forum.arduino.cc/t/ide-hangs-on-startup-lookup-downloads-arduino-cc-no-such-host/1350793
  • https://forum.arduino.cc/t/ide-hangs-on-startup/1350803
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed/1351379
  • https://forum.arduino.cc/t/ide-hangs-on-startup/1351797
  • https://forum.arduino.cc/t/ide-hangs-on-startup-error-verifying-signature-signature-expired/1353221
  • https://forum.arduino.cc/t/ide-hangs-on-startup/1353711
  • https://forum.arduino.cc/t/ide-hangs-on-first-startup-after-installation-on-surface-pro-7/1354559
  • https://forum.arduino.cc/t/ide-hangs-on-startup-sometimes-unavailable-no-connection-established/1355539
  • https://forum.arduino.cc/t/ide-hangs-on-startup-appdata-local-arduino15-library-index-json-the-system-cannot-find-the-file-specified/1355546
  • https://forum.arduino.cc/t/ide-hangs-on-startup-the-index-of-the-cores-and-libraries-must-be-updated-before-initializing-the-core-grpc-client/1356445
  • https://forum.arduino.cc/t/ide-hangs-on-startup-discovery-builtin-mdns-discovery-not-found/1356474
  • https://forum.arduino.cc/t/ide-hangs-on-startup-wsarecv-a-connection-attempt-failed/1357530
  • https://forum.arduino.cc/t/ide-hangs-on-startup-wsarecv-an-existing-connection-was-forcibly-closed-by-the-remote-host/1361153
  • https://forum.arduino.cc/t/ide-hangs-on-startup-invalid-additional-url/1364208
  • https://forum.arduino.cc/t/ide-hangs-on-startup-when-used-on-machine-without-internet-access/1364315
  • https://forum.arduino.cc/t/ide-hangs-on-startup-package-index-json-the-system-cannot-find-the-file-specified/1368766
  • https://forum.arduino.cc/t/ide-hangs-on-startup-unable-to-get-documents-folder/1369010
  • https://forum.arduino.cc/t/ide-hangs-on-startup-invalid-path-creating-config-dir/1369182
  • https://forum.arduino.cc/t/ide-hangs-on-startup-loading-index-file-the-system-cannot-find-the-file-specified/1372672
  • https://forum.arduino.cc/t/ide-hangs-on-startup-connectex-a-connection-attempt-failed/1379912

Keywords

  • "error protocol"

Issue checklist

  • [X] I searched for previous requests in the issue tracker
  • [X] I verified the feature was still missing when using the nightly build
  • [X] My request contains all necessary details

kittaakos avatar Jun 14 '22 10:06 kittaakos

Besides the application-level error handling for the services, I would like to get a proper exit code and a terminating daemon process when something went wrong. Now, IDE2 must sniff into the stderr of the process, parse such messages and kill the daemon process because it's not terminating, although the daemon is nonfunctional:

  • To figure out the directories.data is unusable, IDE2 must parse this.

    invalid path creating config dir: /alma error: mkdir /alma: read-only file system time="2022-12-16T11:07:49+01:00" level=error msg="Error: invalid path creating config dir: /alma error: mkdir /alma: read-only file system"
    
  • To determine a Failed to listen on TCP port. Address already in use. error message: failed to listen, address already in use, bind, only one usage of each socket address

  • For invalid address: Failed to listen on TCP port. Unknown address.: is unknown name or tcp/ and is an invalid port

  • To provide the Failed to listen on TCP port. Invalid port. to the user: is an invalid port and failed to serve

Please help IDE2, terminate the daemon process on unrecoverable errors, such as inaccessible data dir or port issues, and provide an exit code. IDE2 wants to help users understand what went wrong, but it's hard because IDE2 is also just guessing the error. Thanks!

kittaakos avatar Dec 16 '22 10:12 kittaakos

invalid path creating config dir: /alma error: mkdir /alma: read-only file system time="2022-12-16T11:07:49+01:00" level=error msg="Error: invalid path creating config dir: /alma error: mkdir /alma: read-only file system"

And it's not even creating any config dir, the directories.data is incorrect.

kittaakos avatar Dec 16 '22 10:12 kittaakos

This requires some more brainstorming with @cmaglie

umbynos avatar Jan 23 '23 16:01 umbynos

For now we will fix only this error. If there is a need to fix other errors, this is the moment to speak. We will follow the same pattern used already another error ("upload require programmer error"), we should use the same methodology.

umbynos avatar Feb 06 '23 14:02 umbynos

this is the moment to speak.

For now we will fix only this error.

IDE2 wants to avoid parsing error messages from the CLI as it's unreliable.

kittaakos avatar Feb 06 '23 14:02 kittaakos

I am going to reopen this issue as a generic go-to ticket until the CLI can provide error codes for at least the following issues:

  • the sketch is invalid
  • the sketch is missing
  • the sketch is not verified
  • no FQBN
  • invalid FQBN
  • the platform is not installed
  • the dependent platform is not installed when installing a 3rd party platform
  • verify has failed

kittaakos avatar Feb 28 '23 07:02 kittaakos

For now we will fix only this error.

There are open questions on the initial changes at https://github.com/arduino/arduino-cli/pull/2076#issuecomment-1447892161.

kittaakos avatar Mar 01 '23 09:03 kittaakos

Probably should not be necessary anymore after #2119

umbynos avatar May 15 '23 13:05 umbynos

Probably should not be necessary anymore after #2119

It's an essential feature. Please see: https://github.com/arduino/arduino-cli/issues/1762#issuecomment-1447684498

I am going to reopen this issue as a generic go-to ticket until the CLI can provide error codes for at least the following issues:

  • the sketch is invalid
  • the sketch is missing
  • the sketch is not verified
  • no FQBN
  • invalid FQBN
  • the platform is not installed
  • the dependent platform is not installed when installing a 3rd party platform
  • verify has failed

kittaakos avatar May 15 '23 17:05 kittaakos

Please add a specific error code when the programmer is missing from debug --info (https://github.com/arduino/arduino-cli/pull/2394). Currently, clients must parse the stderr. This won't work when the CLI language is not English. Thanks!

kittaakos avatar Nov 13 '23 15:11 kittaakos

It's just partially done. See https://github.com/arduino/arduino-cli/issues/1762#issuecomment-1548255642.

kittaakos avatar Nov 16 '23 10:11 kittaakos