ESP32 Bench
Boards: ESP32, S3, C3
Flash and monitor: Web Serial
← All errors

assert failed: xQueueSemaphoreTake queue.c (( pxQueue ))

CrashesRecognised by the crash translator

What it looks like

assert failed: xQueueSemaphoreTake queue.c:1545 (( pxQueue ))

What it means

A sanity check failed. The line reads: assert failed: <function> <file>:<line> (<condition>). The condition is what should have been true. This common example means a mutex or semaphore was used before it was created.

Likely causes

  • Taking a semaphore or mutex whose xSemaphoreCreate... call has not run yet, or failed.
  • Calling a FreeRTOS API that blocks from inside an interrupt handler.
  • Heap corruption tripping an allocator check (multi_heap_... in the function name).

How to fix it

  1. Read the condition in brackets: it says exactly what was wrong.
  2. Create semaphores, queues and mutexes in setup() before starting any task that uses them.
  3. Use the ...FromISR variants of FreeRTOS calls inside interrupt handlers.

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.