Guru Meditation Error: Core 1 panic'ed (LoadProhibited)
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
- Check every begin() return value and stop with a clear Serial message when it fails, before the object is used.
- Decode the Backtrace line to find the function and line that crashed (see the backtrace page).
- Look at EXCVADDR: a small value such as 0x00000008 is a field read through a null pointer.
- 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.