Description
Describe the problem
On the first run, Arduino IDE must download some files from the Internet:
builtin:serial-discovery
builtin:mdns-discovery
builtin:ctags
- The "Arduino AVR Boards" platform
- The standard libraries
If the IDE does not have Internet access at that time, it can not reach a functional state. There is currently no communication to the user in this situation.
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
- Quit the IDE if it is running.
- Rename or delete (:warning: cautiously) the following folders to simulate the environment of a first run:
- Windows:
C:\Users\<username>\.arduinoIDE
C:\Users\<user name>\AppData\Local\Arduino15
C:\Users\<user name>\AppData\Roaming\arduino-ide
C:\Users\<user name>\Documents\Arduino
- Linux:
~/.arduinoIDE
~/.arduino15
~/.config/arduino-ide
~/Arduino
- macOS:
~/.arduinoIDE
~/Library/Arduino15
~/Library/Application Support/arduino-ide
~/Arduino
- Windows:
- Disconnect your computer from the Internet.
- Start the Arduino IDE.
- Wait as long as you need to feel confident the IDE has finished doing all first run procedures.
- Connect an Arduino board to your computer.
- Open the board/port selector.
🐛 Notice that the board and port are not listed. - Select Tools > Board from the Arduino IDE menus.
🐛 Notice that the expected "Arduino AVR Boards" menu item is not present. - Open the Tools > Port menu.
🐛 Notice that the port of your board is not listed. - Open the Sketch > Include Library menu.
🐛 Notice that there are no libraries.
After you connect to the Internet and restart the IDE, the discoveries will be installed, so the missing ports issue will resolve itself at that time 🙂. However, the missing "Arduino AVR Boards" platform and libraries condition is persistent 🐛 because this is only attempted on the first run, whether or not it fails.
Expected behavior
- Communicate to the user when resources could not be installed on first run.
- Record whether the
arduino:avr
and "Arduino_BuiltIn" installations were successful, and if not then retry on subsequent startups.- Note: This must be done based on a dedicated record, and not on the presence/absence of these installations because users may have later removed unwanted installations after they were successfully installed automatically.
Arduino IDE version
Original report
2.0.0-rc3-snapshot.1d88263
Last verified with
Operating system
Windows
Operating system version
10
Additional context
At one time, the IDE showed a notification when there was no Internet connection (#266), which was cryptic but at least gave some feedback:
Request loadSketch failed with message: 2 UNKNOWN: downloading builtin:[email protected] tool: Get "https://downloads.arduino.cc/tools/ctags-5.8-arduino11-pm-i686-mingw32.zip": dial tcp: lookup downloads.arduino.cc: no such host
But that notification is no longer shown (probably because the system has been made more tolerant of error conditions).
Additional reports:
- First run hangs if IDE can't access Internet, compilation hangs if IDE is in "Offline" state, allow disabling telemetry #2471
- https://forum.arduino.cc/t/arduino-ide-2-not-working/1077381
- https://forum.arduino.cc/t/arduino-ide-2-0-3-hangs-up-on-start/1088609
- https://forum.arduino.cc/t/no-ports-discovered-of-ide-2-0-0-rc9-rc9-1/1018669
- https://forum.arduino.cc/t/ports-not-showing-on-2-0-1-ide-menu/1052816
- https://forum.arduino.cc/t/ide-2-1-0-appimage-fails-first-launch-without-network-connection/1139226
- https://forum.arduino.cc/t/ide-v2-is-useless-without-internet/1142346
- https://forum.arduino.cc/t/ide-wont-start-after-installation-on-computer-without-internet-connection/1168203/8
- https://forum.arduino.cc/t/v2-3-2-hung-after-several-attempts-got-a-blue-screen-on-win10x6/1303517/3
Issue checklist
- I searched for previous reports in the issue tracker
- I verified the problem still occurs when using the latest nightly build
- My report contains all necessary details