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

Guru Meditation Error: Core 1 panic'ed (LoadProhibited)

CrashesRecognised by the crash translator

What it looks like

Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x400d1a2b  PS      : 0x00060230  A0      : 0x800d2c3d  A1      : 0x3ffb1f10
EXCVADDR: 0x00000008

Backtrace: 0x400d1a2b:0x3ffb1f10 0x400d2c3d:0x3ffb1f30 0x400d8f4e:0x3ffb1f50

What it means

The code tried to read memory at an address it may not touch. On the ESP32-C3 and other RISC-V chips the same fault is reported as "Load access fault". An EXCVADDR close to 0x00000000 almost always means a null pointer: the code read a field of an object that was never created.

Likely causes

  • Using a sensor, display or client object whose begin() failed, or that was never allocated.
  • A pointer to an object that has already been deleted, or to a local variable of a function that has returned.
  • Reading past the end of an array into unmapped memory.
  • A String or buffer used from two tasks at once without a lock.

How to fix it

  1. Check every begin() return value and stop with a clear Serial message when it fails, before the object is used.
  2. Decode the Backtrace line to find the function and line that crashed (see the backtrace page).
  3. Look at EXCVADDR: a small value such as 0x00000008 is a field read through a null pointer.
  4. Initialise pointers to nullptr and test them before use.

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

    • Crash right after setup: The code used an object before it was set up, most often a sensor or display whose begin() failed and was not checked.