Arduino IDE Fehler „Failed to update esp32“ beheben – so geht’s
Wer mit der Arduino IDE und ESP32-Boards arbeitet, stößt früher oder später möglicherweise auf einen frustrierenden Fehler beim Installieren oder Aktualisieren der ESP32-Plattform. Der Update-Vorgang bricht dabei plötzlich ab und die Arduino IDE meldet, dass die Installation fehlgeschlagen ist. Besonders ärgerlich ist dies, da der Fehler auf den ersten Blick oft schwer nachvollziehbar erscheint und das Arbeiten mit dem ESP32 unmöglich macht.

Fehlermeldung
Die typische Fehlermeldung lautet dabei oftmals wie folgt:
Failed to update esp32. Error: 4 DEADLINE_EXCEEDED: net/http: request canceled (Client.Timeout or context cancellation while reading body)
oder auch:
Failed to install platform: „esp32:esp32:3.3-6-RC1′. Error: 4 DEADLINE_EXCEEDED: net/http: request canceled (Client. Timeout …
Der Grund für diesen Fehler ist in der Regel ein zu langsamer Download. Während die Arduino IDE versucht, die benötigten Dateien aus dem Internet zu laden, überschreitet der Download die erlaubte Zeitspanne und es kommt zu einem sogenannten Timeout. Infolgedessen wird der Vorgang automatisch abgebrochen. Dies kann sowohl an einer langsamen oder instabilen Internetverbindung liegen als auch daran, dass der entsprechende Update-Server stark ausgelastet ist und die Daten nur verzögert bereitstellt.
Problem beheben
Um das Problem dauerhaft zu beheben, muss die erlaubte Downloadzeit in der Konfiguration der Arduino IDE erhöht werden. Dafür wird die Datei „arduino-cli.yaml“ angepasst, welche die Netzwerkeinstellungen der Arduino CLI enthält. Diese Datei kann mit einem einfachen Texteditor oder einem Code-Editor wie Visual Studio Code geöffnet werden.
Windows Nutzer finden diese Datei unter dem Pfad:
C:\Users\<username>\.arduinoIDE\arduino-cli.yaml
Nutzer von macOS finden die entsprechende Datei dagegen im Verzeichnis (der Arduino-Ordner ist unsichtbar, ihr müsst daher eventuell zunächst das Anzeigen von unsichtbaren Dateien zulassen):
/Users/<username>/.arduinoIDE/arduino-cli.yaml
Nach dem Öffnen der Konfigurationsdatei sollte überprüft werden, ob ein Abschnitt mit dem Eintrag „network:“ sowie dem Parameter „connection_timeout“ vorhanden ist. Falls dieser Abschnitt noch nicht existiert, kann er wie folgt manuell ergänzt werden.
network:
connection_timeout: 1000s
Dabei wird der Wert für „connection_timeout“ auf „1000s“ gesetzt. Ist der Eintrag bereits vorhanden, genügt es, den bestehenden Wert entsprechend zu erhöhen und ebenfalls auf 1000 Sekunden festzulegen.
Durch diese Anpassung wird die maximal erlaubte Dauer für Downloads deutlich verlängert. Dadurch erhält die Arduino IDE genügend Zeit, um die ESP32-Plattform auch bei langsamen Verbindungen oder stark ausgelasteten Servern vollständig herunterzuladen. Nach dem Speichern der Datei und einem Neustart der Arduino IDE sollte das Update in der Regel ohne weitere Probleme durchgeführt werden können.
