Skip to content

Error: Parse Error: Data after Connection: close only 3.9.0 #342

@playmiel

Description

@playmiel

Platform

ESP32

IDE / Tooling

pioarduino

What happened?

[vite] http proxy error: /get-widget
Error: Parse Error: Data after `Connection: close`
    at Socket.socketOnData (node:_http_client:558:22)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
node:events:497
      throw er; // Unhandled 'error' event
      ^

Error [ERR_STREAM_WRITE_AFTER_END]: write after end
    at write_ (node:_http_outgoing:956:11)
    at ServerResponse.write (node:_http_outgoing:905:15)
    at IncomingMessage.ondata (node:internal/streams/readable:1009:22)
    at IncomingMessage.emit (node:events:519:28)
    at Readable.read (node:internal/streams/readable:782:10)
    at flow (node:internal/streams/readable:1283:53)
    at resume_ (node:internal/streams/readable:1262:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
Emitted 'error' event on ServerResponse instance at:
    at emitErrorNt (node:_http_outgoing:928:9)
    at process.processTicksAndRejections (node:internal/process/task_queues:91:21) {
  code: 'ERR_STREAM_WRITE_AFTER_END'
} 

Stack Trace

  ~/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-addr2line -pfiaC -e .pio/build/esp-wrover-kit/firmware.elf 0x400905de 0x40162cb1 0x401c087d 0x40256c92
0x400905de: tcp_recved at C:\Users\Denis\.platformio\packages\framework-espidf\components\lwip\lwip\src\core/tcp.c:985
0x40162cb1: _tcp_abort_api(tcpip_api_call_data*) at C:\Users\Denis\Documents\PlatformIO\Projects\switch_wifi/.pio/libdeps/esp-wrover-kit/AsyncTCP@src-3d2743e0c28a86159a81736b0029ad30/src/AsyncTCP.cpp:674
0x401c087d: lwip_shutdown at C:\Users\Denis\.platformio\packages\framework-espidf\components\lwip\lwip\src\api/sockets.c:2757 (discriminator 1)
0x40256c92: vPortTaskWrapper at port.c:?

Minimal Reproductible Example (MRE)

server
      .on("/get-widget", HTTP_GET,
          [](AsyncWebServerRequest *request) {
            String sessionToken = request->getAttribute("X-Session-Token");
            AsyncJsonResponse *jsonresponse =
                new AsyncJsonResponse(false);
            JsonObject output = jsonresponse->getRoot().to<JsonObject>();
            if (!sessionToken.length()) {
              jsonresponse->setCode(401);
              output["message"] = "no session";
              output["success"] = false;
              jsonresponse->setLength();
              return request->send(jsonresponse);
            }

            bool widgetsLoaded = Widgetmanager.getAllWidgets(output);
            if (!widgetsLoaded) {
              jsonresponse->setCode(500);
              Serial.println("error widget");
              output["message"] =
                  "error scenar";
              output["success"] = false;
              jsonresponse->setLength();
              return request->send(jsonresponse);
            }

            jsonresponse->setCode(200);
            Serial.println("Lecture réussie");

            output["message"] = "scenar ready";
            output["success"] = true;
            jsonresponse->setLength();
            return request->send(jsonresponse);
          })
      .addMiddleware(&testAuth);

I confirm that:

  • I have read the documentation.
  • I have searched for similar discussions.
  • I have searched for similar issues.
  • I have looked at the examples.
  • I have upgraded to the lasted version of ESPAsyncWebServer (and AsyncTCP for ESP32).

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions