Wie man ESP32 Last error reported from esp-tls: 0x8008 repariert

English Deutsch

Problem:

Beim Versuch, TLS wie MQTTS oder HTTPS auf dem ESP32 zu verwenden, sehen Sie eine Fehlermeldung wie

esp_tls_error_tcp_closed.txt
E (333183) MQTT_CLIENT: mqtt_message_receive: transport_read() error: errno=119
[328153][E][MyMQTT.cpp:80] log_error_if_nonzero(): [MQTT] Last error reported from esp-tls: 0x8008
E (333191) MQTT_CLIENT: mqtt_process_receive: mqtt_message_receive() returned -1

Lösung

0x8008 bedeutet ESP_ERR_ESP_TLS_TCP_CLOSED_FIN. Mit anderen Worten, eine TCP-Verbindung war erfolgreich hergestellt worden, aber unerwartet wurde die Verbindung vom Server geschlossen.

Dies wird oft durch einen Absturz der Serversoftware oder einen Neustart verursacht. Wenn ein Serverprozess terminiert wird, wird das Betriebssystem danach aufräumen und alle Verbindungen schließen.

Um das Problem zu debuggen, beginnen Sie damit, das Log Ihrer Server-Nachrichten und/oder das System-Log auf unbeabsichtigte Abstürze zu überprüfen. Wenn das nicht hilft, ist es manchmal hilfreich, die Kommunikation zwischen dem ESP32 und dem Server mit Packet Capture aufzuzeichnen. Sie können auch ein Softwareskript schreiben, das die gleiche Kommunikation mit dem Server wie der ESP32 durchführt. Dies ermöglicht es Ihnen oft, Änderungen viel leichter auszuprobieren als auf dem Mikrocontroller und mit einem Debugger zu beobachten, was passiert.


Check out similar posts by category: C/C++, Embedded, ESP8266/ESP32, Networking