Repository navigation
0.16 crashes when changing from 1D stip to 2D Matrix and clicking on save. 0.15 seams fine #4800
Description
Activity
Or:
Backtrace: 0x4008ab44:0x3ffddea0 0x4008aea1:0x3ffddec0 0x40090209:0x3ffddee0 0x400862f6:0x3ffddf00 0x4008678d:0x3ffddf20 0x4000bec7:0x3ffddf40 0x4013d2bb:0x3ffddf60 0x4013d2c9:0x3ffddf80 0x40122af6:0x3ffddfa0 0x40122d81:0x3ffde080 0x40137a19:0x3ffde0a0 0x401c53ed:0x3ffde0f0 0x4013818d:0x3ffde110 0x40133dcd:0x3ffde150 0x4013537a:0x3ffde190 0x401353a9:0x3ffde1c0 0x4012a8a1:0x3ffde1e0 0x4012ad22:0x3ffde220 0x4012ad9b:0x3ffde240 0x4008c92a:0x3ffde270 #0 0x4008ab44:0x3ffddea0 in invoke_abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648 #1 0x4008aea1:0x3ffddec0 in abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648 #2 0x40090209:0x3ffddee0 in multi_heap_free at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/heap/multi_heap_poisoning.c:305 #3 0x400862f6:0x3ffddf00 in heap_caps_free at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c:354 #4 0x4008678d:0x3ffddf20 in _free_r at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/newlib/syscalls.c:42 #5 0x4000bec7:0x3ffddf40 in ?? ??:0 #6 0x4013d2bb:0x3ffddf60 in String::invalidate() at C:\Users\DesktopTV\.platformio\packages\framework-arduinoespressif32\cores\esp32/WString.cpp:859 #7 0x4013d2c9:0x3ffddf80 in String::~String() at C:\Users\DesktopTV\.platformio\packages\framework-arduinoespressif32\cores\esp32/WString.cpp:859 #8 0x40122af6:0x3ffddfa0 in serveSettings(AsyncWebServerRequest*, bool) at wled00/wled_server.cpp:669 #9 0x40122d81:0x3ffde080 in std::_Function_handler<void (AsyncWebServerRequest*), initServer()::{lambda(AsyncWebServerRequest*)#10}>::_M_invoke(std::_Any_data const&, AsyncWebServerRequest*&&) at wled00/wled_server.cpp:300 (inlined by) _M_invoke at c:\users\desktoptv\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0/functional:1871 #10 0x40137a19:0x3ffde0a0 in std::function<void (AsyncWebServerRequest*)>::operator()(AsyncWebServerRequest*) const at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/DynamicBuffer.h:259 (inlined by) AsyncCallbackWebHandler::handleRequest(AsyncWebServerRequest*) at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebHandlerImpl.h:132 #11 0x401c53ed:0x3ffde0f0 in AsyncWebServerRequest::_handleRequest() at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebRequest.cpp:1048 #12 0x4013818d:0x3ffde110 in AsyncWebServer::processQueue() at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/DynamicBuffer.h:259 #13 0x40133dcd:0x3ffde150 in AsyncWebServerRequest::_requestReady() at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebRequest.cpp:1048 #14 0x4013537a:0x3ffde190 in AsyncWebServerRequest::_onData(void*, unsigned int) at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebRequest.cpp:1048 #15 0x401353a9:0x3ffde1c0 in std::_Function_handler<void (void*, AsyncClient*, void*, unsigned int), AsyncWebServerRequest::AsyncWebServerRequest(AsyncWebServer*, AsyncClient*)::{lambda(void*, AsyncClient*, void*, unsigned int)#5}>::_M_invoke(std::_Any_data const&, void*&&, AsyncClient*&&, std::_Any_data const&, unsigned int&&) at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebRequest.cpp:1048 (inlined by) _M_invoke at c:\users\desktoptv\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0/functional:1871 #16 0x4012a8a1:0x3ffde1e0 in std::function<void (void*, AsyncClient*, void*, unsigned int)>::operator()(void*, AsyncClient*, void*, unsigned int) const at .pio\libdeps\esp32dev\AsyncTCP\src/AsyncTCP.cpp:1123 (inlined by) AsyncClient::_recv(pbuf*, signed char) at .pio\libdeps\esp32dev\AsyncTCP\src/AsyncTCP.cpp:947 #17 0x4012ad22:0x3ffde220 in AsyncClient_detail::handle_async_event(AsyncClient_event_t*) at .pio\libdeps\esp32dev\AsyncTCP\src/AsyncTCP.cpp:1123 #18 0x4012ad9b:0x3ffde240 in _async_service_task(void*) at .pio\libdeps\esp32dev\AsyncTCP\src/AsyncTCP.cpp:1123 #19 0x4008c92a:0x3ffde270 in vPortTaskWrapper at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1) Rebooting...try if #4791 fixes this.
ELF file SHA256: 0000000000000000 Backtrace: 0x4008aad8:0x3ffdd6e0 0x4008ae35:0x3ffdd700 0x4009019d:0x3ffdd720 0x400862fa:0x3ffdd740 0x400e05c1:0x3ffdd760 0x400ed3a0:0x3ffdd780 0x400ed7c4:0x3ffdd7a0 0x400eda4a:0x3ffdd7d0 0x40115df9:0x3ffdd920 0x4012276d:0x3ffddd10 0x40122df5:0x3ffdddf0 0x40137a8d:0x3ffdde10 0x401c548d:0x3ffdde60 0x40138201:0x3ffdde80 0x40133e41:0x3ffddec0 0x401353ee:0x3ffddf00 0x4013541d:0x3ffddf30 0x4012a915:0x3ffddf50 0x4012ad96:0x3ffddf90 0x4012ae0f:0x3ffddfb0 0x4008c8be:0x3ffddfe0 #0 0x4008aad8:0x3ffdd6e0 in invoke_abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648 #1 0x4008ae35:0x3ffdd700 in abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648 #2 0x4009019d:0x3ffdd720 in multi_heap_free at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/heap/multi_heap_poisoning.c:305 #3 0x400862fa:0x3ffdd740 in heap_caps_free at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c:354 #4 0x400e05c1:0x3ffdd760 in Segment::~Segment() at wled00/FX.cpp:3248 (inlined by) Segment::~Segment() at wled00/FX.h:625 #5 0x400ed3a0:0x3ffdd780 in void std::_Destroy<Segment>(Segment*) at wled00/src/dependencies/json/ArduinoJson-v6.h:4836 (inlined by) void std::_Destroy_aux<false>::__destroy<Segment*>(Segment*, Segment*) at c:\users\desktoptv\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\bits/stl_construct.h:103 #6 0x400ed7c4:0x3ffdd7a0 in void std::_Destroy<Segment*>(Segment*, Segment*) at wled00/src/dependencies/json/ArduinoJson-v6.h:4836 (inlined by) void std::_Destroy<Segment*, Segment>(Segment*, Segment*, std::allocator<Segment>&) at c:\users\desktoptv\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\bits/stl_construct.h:151 (inlined by) std::vector<Segment, std::allocator<Segment> >::_M_erase_at_end(Segment*) at c:\users\desktoptv\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\bits/stl_vector.h:1438 (inlined by) std::vector<Segment, std::allocator<Segment> >::clear() at c:\users\desktoptv\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\bits/stl_vector.h:1212 (inlined by) WS2812FX::resetSegments() at wled00/FX_fcn.cpp:1842 #7 0x400eda4a:0x3ffdd7d0 in WS2812FX::makeAutoSegments(bool) at wled00/src/dependencies/json/ArduinoJson-v6.h:4836 #8 0x40115df9:0x3ffdd920 in handleSettingsSet(AsyncWebServerRequest*, unsigned char) at wled00/set.cpp:817 #9 0x4012276d:0x3ffddd10 in serveSettings(AsyncWebServerRequest*, bool) at wled00/wled_server.cpp:609 (discriminator 5) #10 0x40122df5:0x3ffdddf0 in std::_Function_handler<void (AsyncWebServerRequest*), initServer()::{lambda(AsyncWebServerRequest*)#10}>::_M_invoke(std::_Any_data const&, AsyncWebServerRequest*&&) at wled00/wled_server.cpp:300 (inlined by) _M_invoke at c:\users\desktoptv\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0/functional:1871 #11 0x40137a8d:0x3ffdde10 in std::function<void (AsyncWebServerRequest*)>::operator()(AsyncWebServerRequest*) const at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/DynamicBuffer.h:259 (inlined by) AsyncCallbackWebHandler::handleRequest(AsyncWebServerRequest*) at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebHandlerImpl.h:132 #12 0x401c548d:0x3ffdde60 in AsyncWebServerRequest::_handleRequest() at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebRequest.cpp:1048 #13 0x40138201:0x3ffdde80 in AsyncWebServer::processQueue() at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/DynamicBuffer.h:259 #14 0x40133e41:0x3ffddec0 in AsyncWebServerRequest::_requestReady() at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebRequest.cpp:1048 #15 0x401353ee:0x3ffddf00 in AsyncWebServerRequest::_onData(void*, unsigned int) at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebRequest.cpp:1048 #16 0x4013541d:0x3ffddf30 in std::_Function_handler<void (void*, AsyncClient*, void*, unsigned int), AsyncWebServerRequest::AsyncWebServerRequest(AsyncWebServer*, AsyncClient*)::{lambda(void*, AsyncClient*, void*, unsigned int)#5}>::_M_invoke(std::_Any_data const&, void*&&, AsyncClient*&&, std::_Any_data const&, unsigned int&&) at .pio\libdeps\esp32dev\ESPAsyncWebServerWLED\src/WebRequest.cpp:1048 (inlined by) _M_invoke at c:\users\desktoptv\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0/functional:1871 #17 0x4012a915:0x3ffddf50 in std::function<void (void*, AsyncClient*, void*, unsigned int)>::operator()(void*, AsyncClient*, void*, unsigned int) const at .pio\libdeps\esp32dev\AsyncTCP\src/AsyncTCP.cpp:1123 (inlined by) AsyncClient::_recv(pbuf*, signed char) at .pio\libdeps\esp32dev\AsyncTCP\src/AsyncTCP.cpp:947 #18 0x4012ad96:0x3ffddf90 in AsyncClient_detail::handle_async_event(AsyncClient_event_t*) at .pio\libdeps\esp32dev\AsyncTCP\src/AsyncTCP.cpp:1123 #19 0x4012ae0f:0x3ffddfb0 in _async_service_task(void*) at .pio\libdeps\esp32dev\AsyncTCP\src/AsyncTCP.cpp:1123 #20 0x4008c8be:0x3ffddfe0 in vPortTaskWrapper at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1) Rebooting...Still crashes
- changed the title
[-]ESP crashes when changing from 1D stip to 2D Matrix and clicking on save[/-][+]0.16 crashes when changing from 1D stip to 2D Matrix and clicking on save. 0.15 seams fine[/+]on Jul 31, 2025 Crash dumps point to issues with networking stack. As with your previous report I am suspecting not WLED related.
You may also want to monitor your network traffic if there are any unusual packets broadcast.I don't think is the internet. Is different. And just when saving on the 2D setting page. No problem on 0.15 release for some reason.
And again. no problem on other versions.There were no changes to 2D set-up.
Crashes even in AP.
Something pointing to: serveSettings(AsyncWebServerRequest*, bool) at wled00/wled_server.cpp:669
669 is a return from
if (request->hasArg(F("revert")) && inLocalSubnet(request->client()->remoteIP()) && Update.canRollBack()) { doReboot = Update.rollBack(); if (doReboot) { serveMessage(request, 200, F("Reverted to previous version!"), FPSTR(s_rebooting), 133); } else { serveMessage(request, 500, F("Rollback failed!"), F("Please reboot and retry."), 254); } return; <- here for some reason }When this rollback version was added. May worth testing before it.
Can't find what changed from 0.15.0.
I closed it for now.0.15.1 seams to work fine on this
Reacted by Will TatamThis seams to be happening if the Leds count are 30. If i bigger the crash not occurs for some reason.
Need a way to debug this but not sure how. I don't know if here is a way to download all the previous builds to try.I think the: #4658 adds this bug somehow

There are still bugs in 2D setup, but I was not able to find it yet. see #4911
Reacted by Gawd21@Gawd21 in your config: is the number of leds smaller than the size of the matrix?
if you set your LEDs to 100 and then set 2D, does it work i.e. is it the same bahaviour as in #4911 ? If leds are off it works?
The setting LEDs to 2 may be an outlier but still useful info.It is a bit of a mystery bug. If you could confirm or deny whats in the other issue (i.e. LEDs on/off and number of LEDs < matrix size) that would be helpful. please report in the other issue so its easier to track.
Hey! This issue has been open for quite some time without any new comments now. It will be closed automatically in a week if no further activity occurs.
Thank you for using WLED! ✨- addedstaleThis issue will be closed soon because of prolonged inactivityThis issue will be closed soon because of prolonged inactivity
on Jan 28, 2026 fixed in #5023
What happened?
Crashes when changing from 1D to 2D and click on save
To Reproduce Bug
Anything else?
No response
Code of Conduct