-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Getting ERR_EMPTY_RESPONSE on Chrome when saving settings #5229
Comments
What (exact) version of Chrome do you have installed? Can you also try with Chrome Develop and/or Chrome Canary? |
Also do you have JavaScript blocked? Do you fetch the JS files from an external CDN or from the ESPEasy node? Also, what ESP are you using (e.g. ESP32-C3 for example...) |
Another one to check... Do you have Chrome extensions active? |
Version 131.0.6778.266 (Official Build) (64-bit) Note: I am also getting errors using the Firefox but less often. Another issue found is that sending WifiAPMode command in the browser does not seem to work either. |
Can you make a backup of the settings etc. of that node and please show the file system info from the sysinfo page. Did you by any chance use a different flasher for this node? Sounds like the file system partition may have changed and/or the SPIFFS file system got too fragmented to operate without errors. |
after many tries was able to revert the firmware back to: Build: [ESP_Easy_mega_20221104_MFD_ESP8266_4M1M_80MHz_QIO_VCC Nov 4 2022] I did not do "Factory Reset" after restore and had no problems setting the "Unit name" using Chrome. |
There should not be a change in file system layout. You don't seem to have a lot of files on the file system, so it is less likely fragmentation is the main cause here. Honestly I have no idea what may have caused this. |
the jquery is from internet but everything else is from the node. |
it looks that the custom-sample.h is missing instructions on how to disable CDN. |
JQuery is always fetched from CDN, we don't currently have code to load that from the node. All other .js files can be uploaded to the file system. |
Checked my Chrome version, and it auto-updated to 132.0.6834.84, so far all is working as expected. Didn't test really much, though Tools/Log, Rules and the Devices pages are working normal (seems the browser-cache was partially flushed). |
You can also upload the files as listed here to the ESP node. |
Could it be a problem with dispatching HTTP POST requests? ex: void handleFileUpload() { None of these were showing in the logs. |
The upload isn't using any Javascript, it is just a HTTP POST. If the official build is working, you should remove the .platformio folder in the ESPEasy project dir and these 3 folders in C:\Users<name>.platformio\
Make sure you do not have any VS code open while removing those folders and when you open VS code again, you should have the latest platformio.ini (and other .ini files) of the latest code base on your PC. |
Oh and how did you flash the build, as it seems to be running at 80 MHz flash speed? |
I have removed both the .platformio and the .pio folders for good measure. I have rebuild the normal_ESP8266_4M1M_VCC and still same issue. I also added: which gets call fine on the GET for both the device list and the edit of a device but then for the POST from Chrome I do not get this log. Regarding the 80MHz and QIO I use those settings from 2018 on the same board and had no issues. here is an example of the POST body from Chrome that is not working: (I personally see no issue with it) I have also disabled all the Chrome extensions and still no luck. |
Can you also try to install a downloaded from Github Release page copy of that build, to exclude any possible influence from your local build environment? |
ok. uploaded the ESP_Easy_mega_20241222_normal_ESP8266_4M1M_VCC.bin and getting the same issue in Chrome |
Has your Chrome been updated to 132.x yet? Maybe this update improves things? |
... or breaks things as I am still on 131.x |
I just reinstall Chrome and still have the issue. |
on the custom builds each time when was not working the POST calls were not transferred to the code by the ESP lib as I could not see the Logs I added. What was strange is that usually after a reboot would work for like once or so then it stops. I saw that currently the ESP SDK is much newer than what ESPEASY is using. Any reason why that much of discrepancy ? |
uploaded: ESP_Easy_mega_20241222_custom_beta_2ndheap_ESP8266_4M1M.bin and still the same issue for me. However important finding: I install Fiddler to capture the traffic and the pages started to work. I build my custom firmware again and the pages are still working with fiddler in the middle of the traffic. The moment I close Fiddler the pages stop working. |
The "312" and "beta" build each use the latest ESP8266 code. Could you try one of those "274" builds to see if this 'fixes' it? Then we know it is in the SDK. |
I was using the 274 type of build. |
OK, then I have no idea what may have changed since. |
No idea here either. I might need your help to identify the source code for the ESP8266WebServer as I can't find it anywhere. Based on the logs I see I wonder if there is a character that throws off the parser thus not calling the handler. (at least this is what I see or not see in the logs). I see that the https://github.com/esp8266/Arduino/tree/master/package is using the NONOSDK but it does not make sense that the lib will be there as I expect that SDK to be pure C (but could be wrong) Any help identifying the libs would be appreciated. |
I have installed Wireshark and this is what I found: In chrome if I override the User Agent with a custom 3 characters one the POST works. Based on what I see there is a size limit on the POST request somewhere between 730 and 841 bytes. (800bytes ???) |
Hmm sounds like a free memory issue. |
Disabling all tasks bakes no difference. Here are the differences between the two firmware: I can't find any of the checkins for the NONOS SDK and there is no branch, release or tag named 2.2.2 in this repo: https://github.com/espressif/ESP8266_NONOS_SDK |
This is what I found so far: Note: the file upload is influenced by the AP "RTS Threshold" which again needs to be set over 1460 for the upload to work. If someone could change those and validate the results would be great. As I am not able to track what exactly changed in between I will let the experts to continue if you want otherwise we can close this issue and I will have to deal with the AP changes required to make this work. |
What brand/model of access point do you have? I find the MSS of 1460 a bit high to be honest, as the MTU is probably 1492. |
I have DD-WRT as the AP. It was configured based on max throughput and best stability given the noisy environment I am in. The MSS is actually defined inside the NONOSKD as a constant and I can't change it. The way it works is that the server sends that out in the first TCP connection saying this is the max package that I can accept. As I could not find the two checkins mentioned above I could not do a diff to see what changed between 2022 and 2024 |
The webserver does use a buffer system I wrote. ( #ifdef ESP8266
#define CHUNKED_BUFFER_SIZE 512
#else
#define CHUNKED_BUFFER_SIZE 1200
#endif This used to be 400 bytes for ESP8266 |
seems that it was 512 in 2022 so is not that. |
Can you test one more thing in the Web_StreamingBuffer.cpp ? See line 224 here: Can you comment out the line with More info on this subject: https://www.extrahop.com/blog/tcp-nodelay-nagle-quickack-best-practices |
Describe the bug
Updated the ESP easy to 2024-12-29 and now I can't use Chrome to configure anymore.
Each time I save I get ERR_EMPTY_RESPONSE and the update is not saved.
The logs do not show any errors either.
However using the Firefox to configure does work.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I would like to be able to use Chrome Browser to configure my boards.
Used platform (please complete the following information):
Platform Specifics (when applicable, please complete the following information):
The text was updated successfully, but these errors were encountered: