diff --git a/.changeset/giant-days-develop.md b/.changeset/giant-days-develop.md new file mode 100644 index 000000000..8d912a65d --- /dev/null +++ b/.changeset/giant-days-develop.md @@ -0,0 +1,7 @@ +--- +"@opennextjs/aws": patch +--- + +fix(http): Set content-length only if body is present + +The body is undefined when using the edge converter and the method is GET or HEAD diff --git a/packages/open-next/src/http/request.ts b/packages/open-next/src/http/request.ts index 88c68049e..35bc9e1b9 100644 --- a/packages/open-next/src/http/request.ts +++ b/packages/open-next/src/http/request.ts @@ -28,8 +28,10 @@ export class IncomingMessage extends http.IncomingMessage { destroy: Function.prototype, }); - if (typeof headers["content-length"] === "undefined") { - headers["content-length"] = Buffer.byteLength(body).toString(); + // Set the content length when there is a body. + // See https://httpwg.org/specs/rfc9110.html#field.content-length + if (body) { + headers["content-length"] ??= String(Buffer.byteLength(body)); } Object.assign(this, {