esp-idf: WiFi intermittently disconnects due to MIC failure; takes up to a minute to reconnect (IDFGH-5563)

Environment

  • Development Kit: ESP32-PICO-Kit
  • Kit version (for WroverKit/PicoKit/DevKitC): v4.1
  • Module or chip used: ESP32-PICO-D4
  • IDF version (run git describe --tags to find it): v4.3
  • Build System: [Make|CMake|idf.py]
  • Compiler version (run xtensa-esp32-elf-gcc --version to find it): 8.4.0
  • Operating System: Windows
  • (Windows only) environment type: PowerShell
  • Using an IDE?: Yes (Eclipse with ESP-IDF plugin)
  • Power Supply: USB, or External with DC-DC regulator to 5V
  • Wifi Router: Apple Airport model A1408 (~10 years old)

Problem Description

I have 4 or 5 ESP32 Pico Kit devices running with WiFi and all running the same application I have written. I have a server sending each of them a REST API request every 2 seconds.

This test runs consistently for several hours. However, approximately once a day (it varies somewhat), the WiFi will disconnect and my event handler will require 40 to 60 seconds in order to reconnect again. The reason for the original disconnect appears to be MIC Failure. Subsequent attempts to reconnect result in authentication failure until finally connection is successful.

Interesting aspect: if I am running 5 different devices, all with the same software running the same test, they all experience this failure simultaneously.

Expected Behavior

The tests should be able to run continuously with no interruption due to intermittent WiFi disconnections.

Actual Behavior

WiFi connections are interrupted intermittently on a daily basis. All ESP32 devices on the network which are running the same software disconnect simultaneously.

Steps to reproduce

  1. Start application
  2. Start test which sends REST API command (w/response) to device every 2 seconds
  3. After several hours or up to about 1 day, the wifi will disconnect and have to reconnect itself

Debug Logs

I (8317882) wifi:state: run -> init (ec0)
I (8317882) wifi:pm stop, total sleep time: 7601484796 us / 8316383274 us

I (8317882) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8317892) BD-PTB: wifiEvent: wifi disconnect occurred (14); attempting reconnect
I (8317932) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8317932) wifi:state: init -> auth (b0)
I (8317932) wifi:state: auth -> init (600)
I (8317942) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8317942) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8320002) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8320002) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8320002) wifi:state: init -> auth (b0)
I (8320012) wifi:state: auth -> init (600)
I (8320012) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8320012) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8322072) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8322082) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8322082) wifi:state: init -> auth (b0)
I (8322082) wifi:state: auth -> init (600)
I (8322082) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8322092) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8324152) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8324162) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8324162) wifi:state: init -> auth (b0)
I (8324162) wifi:state: auth -> init (600)
I (8324162) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8324172) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8326232) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8326232) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8326232) wifi:state: init -> auth (b0)
I (8326242) wifi:state: auth -> init (600)
I (8326242) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8326252) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8328302) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8328312) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8328312) wifi:state: init -> auth (b0)
I (8328312) wifi:state: auth -> init (600)
I (8328312) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8328322) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8330382) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8330392) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8330392) wifi:state: init -> auth (b0)
I (8330392) wifi:state: auth -> init (600)
I (8330392) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8330402) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8332462) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8332472) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8332472) wifi:state: init -> auth (b0)
I (8332472) wifi:state: auth -> init (600)
I (8332472) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8332482) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8334532) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8334542) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8334542) wifi:state: init -> auth (b0)
I (8334552) wifi:state: auth -> init (600)
I (8334552) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8334552) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8336612) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8336622) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8336622) wifi:state: init -> auth (b0)
I (8336622) wifi:state: auth -> init (600)
I (8336622) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8336632) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8338692) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8338692) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8338702) wifi:state: init -> auth (b0)
I (8338702) wifi:state: auth -> init (600)
I (8338702) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8338712) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8340762) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8340772) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8340772) wifi:state: init -> auth (b0)
I (8340782) wifi:state: auth -> init (600)
I (8340782) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8340782) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8342842) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8342912) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8342912) wifi:state: init -> auth (b0)
I (8342922) wifi:state: auth -> init (600)
I (8342922) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8342922) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8344982) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8344992) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8344992) wifi:state: init -> auth (b0)
I (8344992) wifi:state: auth -> init (600)
I (8344992) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8345002) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8347062) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8347062) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8347062) wifi:state: init -> auth (b0)
I (8347072) wifi:state: auth -> init (600)
I (8347072) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8347072) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8349132) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8349162) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8349162) wifi:state: init -> auth (b0)
I (8349162) wifi:state: auth -> init (600)
I (8349162) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8349172) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8351232) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8351232) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8351232) wifi:state: init -> auth (b0)
I (8351242) wifi:state: auth -> init (600)
I (8351242) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8351242) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8353302) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8353312) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8353312) wifi:state: init -> auth (b0)
I (8353312) wifi:state: auth -> init (600)
I (8353312) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8353322) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8355382) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8355392) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8355392) wifi:state: init -> auth (b0)
I (8355392) wifi:state: auth -> init (600)
I (8355392) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8355402) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8357452) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8357462) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8357462) wifi:state: init -> auth (b0)
I (8357472) wifi:state: auth -> init (600)
I (8357472) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8357482) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8359532) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8359542) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8359542) wifi:state: init -> auth (b0)
I (8359552) wifi:state: auth -> init (600)
I (8359552) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8359552) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8361612) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8361622) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8361622) wifi:state: init -> auth (b0)
I (8361632) wifi:state: auth -> init (600)
I (8361632) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8361632) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8363692) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8363702) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8363702) wifi:state: init -> auth (b0)
I (8363702) wifi:state: auth -> init (600)
I (8363702) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8363712) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8365772) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8365772) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8365782) wifi:state: init -> auth (b0)
I (8365782) wifi:state: auth -> init (600)
I (8365782) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8365792) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8367842) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8367852) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8367852) wifi:state: init -> auth (b0)
I (8367862) wifi:state: auth -> init (600)
I (8367862) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8367862) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8369922) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8369932) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8369932) wifi:state: init -> auth (b0)
I (8369932) wifi:state: auth -> init (600)
I (8369932) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8369942) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8372002) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8372012) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8372012) wifi:state: init -> auth (b0)
I (8372012) wifi:state: auth -> init (600)
I (8372012) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8372022) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8374072) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8374142) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8374152) wifi:state: init -> auth (b0)
I (8374152) wifi:state: auth -> init (600)
I (8374152) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8374152) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8376212) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8376222) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8376222) wifi:state: init -> auth (b0)
I (8376222) wifi:state: auth -> init (600)
I (8376222) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
W (8376232) BD-PTB: wifiEvent: wifi disconnect occurred (202); attempting reconnect
W (8378292) BD-PTB: wifiEvent: wifi disconnect occurred (205); attempting reconnect
I (8378302) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (8378302) wifi:state: init -> auth (b0)
I (8378302) wifi:state: auth -> assoc (0)
I (8378312) wifi:state: assoc -> run (10)
I (8378322) wifi:connected with Antioch, aid = 5, channel 11, BW20, bssid = 20:c9:d0:20:04:e7
I (8378322) wifi:security: WPA2-PSK, phy: bgn, rssi: -41
I (8378332) wifi:pm start, type: 1

I (8378342) wifi:AP's beacon interval = 102400 us, DTIM period = 3
I (8379662) esp_netif_handlers: sta ip: 192.168.1.95, mask: 255.255.255.0, gw: 192.168.1.1
I (8379662) BD-PTB: wifiEvent: wifi obtained IP

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Comments: 71 (30 by maintainers)

Most upvoted comments