From e4bd1bba8ebadc3248cc7c1232064a93f2326118 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Fri, 20 Dec 2024 10:04:44 +0100 Subject: [PATCH] fix(cloudflare): No body for 101, 204, 205, or 304 status codes --- .../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 1640b6bb8..d00227f4e 100644 --- a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts +++ b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts @@ -7,6 +7,9 @@ import type { Wrapper, WrapperHandler } from "types/overrides"; import { Writable } from "node:stream"; +// Response with null body status (101, 204, 205, or 304) cannot have a body. +const NULL_BODY_STATUSES = new Set([101, 204, 205, 304]); + const handler: WrapperHandler = async (handler, converter) => async ( @@ -55,7 +58,8 @@ const handler: WrapperHandler = controller.enqueue(Uint8Array.from(chunk.chunk ?? chunk)); }, }); - const response = new Response(readable, { + const body = NULL_BODY_STATUSES.has(statusCode) ? null : readable; + const response = new Response(body, { status: statusCode, headers: responseHeaders, });