From 36b578a6fdbb2471a10ab4a1cae77249055cdaad Mon Sep 17 00:00:00 2001 From: Michael Hart Date: Tue, 11 Nov 2025 16:31:13 +1100 Subject: [PATCH 1/4] Improve error handling in Writable stream Ensure errors are correctly handled in the Writable stream write. Previously this would throw an unhandled exception if the response stream had closed (eg, connection had been terminated). This is handled correctly if Node.js 24 stream behaviour is used, but not Node.js 22 or earlier. Returning the callback with the error ensures consistent behaviour for all Node.js versions (or compat versions) --- .../open-next/src/overrides/wrappers/cloudflare-node.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts index ac121be70..a2906e38d 100644 --- a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts +++ b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts @@ -83,7 +83,11 @@ const handler: WrapperHandler = return new Writable({ write(chunk, encoding, callback) { - controller.enqueue(chunk); + try { + controller.enqueue(chunk); + } catch (e) { + return callback(e); + } callback(); }, final(callback) { From 4eb3cb97b7e965b4c2949fef28792988501ed430 Mon Sep 17 00:00:00 2001 From: Michael Hart Date: Tue, 11 Nov 2025 16:33:33 +1100 Subject: [PATCH 2/4] Fix typing --- packages/open-next/src/overrides/wrappers/cloudflare-node.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts index a2906e38d..28207e65f 100644 --- a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts +++ b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts @@ -85,7 +85,7 @@ const handler: WrapperHandler = write(chunk, encoding, callback) { try { controller.enqueue(chunk); - } catch (e) { + } catch (e: Error | null | undefined) { return callback(e); } callback(); From f690ee3ca832f79a7aac642e434ca45dce814423 Mon Sep 17 00:00:00 2001 From: Michael Hart Date: Tue, 11 Nov 2025 16:34:28 +1100 Subject: [PATCH 3/4] Fix typings again! --- packages/open-next/src/overrides/wrappers/cloudflare-node.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts index 28207e65f..d706e91f1 100644 --- a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts +++ b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts @@ -85,7 +85,7 @@ const handler: WrapperHandler = write(chunk, encoding, callback) { try { controller.enqueue(chunk); - } catch (e: Error | null | undefined) { + } catch (e: any) { return callback(e); } callback(); From 9c1611b7911516ef208aabc76944cbd5ee753574 Mon Sep 17 00:00:00 2001 From: conico974 Date: Wed, 12 Nov 2025 22:39:12 +0100 Subject: [PATCH 4/4] Improve error handling in Writable stream Enhance error handling specifically for cloudflare node converters. --- .changeset/tall-carpets-own.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tall-carpets-own.md diff --git a/.changeset/tall-carpets-own.md b/.changeset/tall-carpets-own.md new file mode 100644 index 000000000..ced453690 --- /dev/null +++ b/.changeset/tall-carpets-own.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/aws": patch +--- + +Improve error handling in Writable stream in cloudflare node converters