arduino / arduino-ide

Arduino IDE 2.x
https://www.arduino.cc/en/software
GNU Affero General Public License v3.0
2.31k stars 391 forks source link

First run hangs if IDE can't access Internet #2042

Open per1234 opened 1 year ago

per1234 commented 1 year ago

Describe the problem

On the first run after a fresh installation, Arduino IDE downloads some files from the Internet:

🐛 If the download of these files is not possible due to lack of Internet access, the startup hangs.

This is a change from Arduino IDE 1.x, which is in a fully functional state from the start with no hard dependency on an Internet connection (though obviously Library/Boards Manager can't be used).

To reproduce

  1. Select File > Quit from the Arduino IDE menus if it is running.
  2. Rename or delete (:warning: cautiously) the following folder to effectively simulate the environment of a first run:
    • If you are using Windows:
      C:\Users\<username>\AppData\Local\Arduino15

      (where <username> is your Windows username)

    • If you are using Linux:
      ~/.arduino15
    • If you are using macOS:
      ~/Library/Arduino15
  3. Disconnect your computer from the Internet.
  4. Start Arduino IDE.

🐛 Startup hangs at the startup animation.

🐛 The cause of the hang is not communicated to the user.

Expected behavior

Complete startup even when the essential resources could not be installed.

This is important because, once it has started up, Arduino IDE shows notifications that communicate the Internet access dependency to the user.

Arduino IDE version

097c92d904ca9b126e54b6a58030b5f4c650f075

Operating system

Windows

Operating system version

11

Additional context

The regression was introduced at https://github.com/arduino/arduino-ide/commit/a36524e02ab5fbc2ef333ff67a047dfe5718b306


The logs include this:

2023-05-03T23:57:19.823Z root ERROR Uncaught Exception: 
2023-05-03T23:57:19.823Z root ERROR Error: The index of the cores and libraries must be updated before initializing the core gRPC client.
The following problems were detected during the gRPC client initialization:
[platform-index] - code: 9, message: Loading index file: loading json index file C:\Users\per\AppData\Local\Arduino15\package_index.json: open C:\Users\per\AppData\Local\Arduino15\package_index.json: The system cannot find the file specified.
[platform-index] - code: 9, message: Error loading hardware platform: discovery builtin:serial-discovery not found
[platform-index] - code: 9, message: Error loading hardware platform: discovery builtin:mdns-discovery not found
[library-index] - code: 9, message: Loading index file: reading library_index.json: open C:\Users\per\AppData\Local\Arduino15\library_index.json: The system cannot find the file specified.

    at isIndexUpdateRequiredBeforeInit (C:\arduino-tools\193-097c92d\resources\app\node_modules\arduino-ide-extension\lib\node\core-client-provider.js:388:11)
    at CoreClientProvider.evaluateErrorStatus (C:\arduino-tools\193-097c92d\resources\app\node_modules\arduino-ide-extension\lib\node\core-client-provider.js:200:16)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async ClientReadableStreamImpl.<anonymous> (C:\arduino-tools\193-097c92d\resources\app\node_modules\arduino-ide-extension\lib\node\core-client-provider.js:184:31)

Related

Additional reports:

Issue checklist

dkorzhevin commented 11 months ago

Probably, also related to the "Could not install Arduino_BuiltIn library: Error: Could not find library" error.

Screenshot 2023-11-25 at 21 59 31