Task watchdog got triggered. The following tasks did not reset the watchdog in time
What it looks like
E (10321) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time: E (10321) task_wdt: - IDLE0 (CPU 0) E (10321) task_wdt: Tasks currently running: E (10321) task_wdt: CPU 0: loopTask
What it means
A task ran for several seconds without giving the CPU back. The task named after the dash is the one that got starved: IDLE0 or IDLE1 means something on that core never yielded, so the idle task could not run.
Likely causes
- A wait loop with no delay, such as while (!client.available()) {}.
- A long computation or a big for loop in loop() with no delay().
- A task pinned to core 0 that never blocks, starving Wi-Fi and the idle task.
How to fix it
- Put delay(1) or yield() inside every loop that waits for something.
- Add a timeout to wait loops so they give up instead of spinning forever.
- In your own tasks, block with vTaskDelay(), a queue or a semaphore instead of polling.
Paste your full log
The lines around the error usually say more. Paste everything from the reset to the backtrace and the crash translator explains each part. It runs in your browser; nothing is sent anywhere.
From the hall of flames
- Resets every few seconds while waiting: A loop that waits for something without ever yielding, such as while (!sensor.ready()) {} with no delay.