From faffecaacf9bd01f4f5758b642a5375537c78d4c Mon Sep 17 00:00:00 2001 From: "xuping.wang" <2232455931@qq.com> Date: Sun, 30 Aug 2026 00:52:33 +0800 Subject: [PATCH] fix(eio): report oversized polling payloads Emit the existing transport error after a polling request exceeds maxHttpBufferSize so server-side disconnect handlers receive an actionable description. Assisted-by: OpenAI Codex:gpt-5 Signed-off-by: xuping.wang <2232455931@qq.com> --- packages/engine.io/lib/transports/polling.ts | 1 + packages/engine.io/test/server.js | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/engine.io/lib/transports/polling.ts b/packages/engine.io/lib/transports/polling.ts index f48f0cd6b..a465f0042 100644 --- a/packages/engine.io/lib/transports/polling.ts +++ b/packages/engine.io/lib/transports/polling.ts @@ -153,6 +153,7 @@ export class Polling extends Transport { exceededMaxHttpBufferSize = true; res.writeHead(413).end(); cleanup(); + this.onError("payload too large"); return; } diff --git a/packages/engine.io/test/server.js b/packages/engine.io/test/server.js index bbfa86068..bc7245f59 100644 --- a/packages/engine.io/test/server.js +++ b/packages/engine.io/test/server.js @@ -1823,7 +1823,7 @@ describe("server", () => { }); }); - it("should not be receiving data when getting a message longer than maxHttpBufferSize when polling", (done) => { + it("should report a message longer than maxHttpBufferSize when polling", (done) => { const opts = { allowUpgrades: false, transports: ["polling"], @@ -1837,13 +1837,17 @@ describe("server", () => { new Error("Test invalidation (message is longer than allowed)"), ); }); + conn.on("close", (reason, description) => { + expect(reason).to.be("transport error"); + expect(description).to.be.an(Error); + expect(description.type).to.be("TransportError"); + expect(description.message).to.be("payload too large"); + done(); + }); }); socket.on("open", () => { socket.send("aasdasdakjhasdkjhasdkjhasdkjhasdkjhasdkjhasdkjha"); }); - socket.on("close", () => { - done(); - }); }); });