There is another fatal issue with OvmsSyncHttpClient besides the issue with running in the mongoose context: OTA updates are no longer possible. When flashing via HTTP, the OvmsSyncHttpClient tries to allocate memory for a full firmware image, which of course fails: OVMS# ota flash http Current running partition is: factory Target partition is: ota_0 Download firmware from ovms.dexters-web.de/firmware/ota/v3.1/edge/ovms3.bin to ota_0 Guru Meditation Error: Core 1 panic'ed (StoreProhibited). Exception was unhandled. Core 1 register dump: PC : 0x4022438b PS : 0x00060a30 A0 : 0x802245cd A1 : 0x3ffe9c70 A2 : 0x00000000 A3 : 0x3ffe6f5c A4 : 0x00000001 A5 : 0xffffffff A6 : 0x3fabad7c A7 : 0xff000000 A8 : 0x00000000 A9 : 0x3ffe9c50 A10 : 0x00000000 A11 : 0x3ffe6f5c A12 : 0x00000001 A13 : 0x0000000a A14 : 0x00000037 A15 : 0x00000057 SAR : 0x00000018 EXCCAUSE: 0x0000001d EXCVADDR: 0x00000000 LBEG : 0x4008b179 LEND : 0x4008b19b LCOUNT : 0xffffffff ELF file SHA256: 94a8e191baae33a5 Backtrace: 0x4022438b:0x3ffe9c70 0x402245ca:0x3ffe9c90 0x40132f93:0x3ffe9cc0 0x40132e51:0x3ffe9d10 0x40133609:0x3ffe9d40 0x402e7472:0x3ffe9d70 0x4010e229:0x3ffe9d90 0x4010fbd5:0x3ffe9dd0 0x40110015:0x3ffe9e00 0x401102de:0x3ffe9e70 0x4010c51a:0x3ffe9ed0 0x400f5a4f:0x3ffe9ef0 0x400f5afd:0x3ffe9f40 Rebooting... 0x4022438b is in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy(char*, char const*, unsigned int) (/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/build/build-cc-gcc-final/xtensa-esp32-elf/esp32-psram/libstdc++-v3/include/bits/char_traits.h:243). 0x402245ca is in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned int) (/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/build/build-cc-gcc-final/xtensa-esp32-elf/esp32-psram/libstdc++-v3/include/bits/basic_string.tcc:298). 0x40132f93 is in OvmsSyncHttpClient::ConnectionHeaders(mg_connection*) (/home/balzer/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/components/ovms_http/src/ovms_http.cpp:381). 376 else 377 { 378 if (header.compare(0,15,"Content-Length:") == 0) 379 { 380 m_bodysize = atoi(header.substr(15).c_str()); *381 m_body.reserve(m_bodysize+1);* 382 } 383 else if (header.compare(0,5,"HTTP/") == 0) 384 { 385 size_t space = header.find(' '); 0x40132e51 is in OvmsSyncHttpClient::ConnectionData(mg_connection*, unsigned char*, unsigned int) (/home/balzer/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/components/ovms_http/src/ovms_http.cpp:316). 311 data += len; 312 consumed += len; 313 len = 0; 314 } 315 316 ConnectionHeaders(nc); 317 } 318 319 if (! m_inheaders) 320 { 0x40133609 is in OvmsSyncHttpClient::MongooseCallback(mg_connection*, int, void*) (/home/balzer/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/components/ovms_http/src/ovms_http.cpp:124). 119 m_mgconn = NULL; 120 } 121 break; 122 123 case MG_EV_RECV: 124 mbuf_remove(&nc->recv_mbuf, ConnectionData(nc,(uint8_t*)nc->recv_mbuf.buf, nc->recv_mbuf.len)); 125 break; 126 127 default: 128 break; Can we switch back to using the old async client? Regards, Michael -- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26