From 69924e2f7a91b29878207819a9293e037fd3010c Mon Sep 17 00:00:00 2001 From: Dorseuil Nicolas Date: Thu, 8 May 2025 19:02:18 +0200 Subject: [PATCH 1/2] fix headers for edge middleware --- .../open-next/src/overrides/converters/edge.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/open-next/src/overrides/converters/edge.ts b/packages/open-next/src/overrides/converters/edge.ts index bc1f2f677..1dc531a81 100644 --- a/packages/open-next/src/overrides/converters/edge.ts +++ b/packages/open-next/src/overrides/converters/edge.ts @@ -78,7 +78,22 @@ const converter: Converter = { } const headers = new Headers(); for (const [key, value] of Object.entries(result.headers)) { - headers.set(key, Array.isArray(value) ? value.join(",") : value); + if (key === "set-cookie" && typeof value === "string") { + // If the value is a string, we need to parse it into an array + // This is the case for middleware direct result + const cookies = parseCookies(value); + for (const cookie of cookies) { + headers.append(key, cookie); + } + continue; + } + if (Array.isArray(value)) { + for (const v of value) { + headers.append(key, v); + } + } else { + headers.set(key, value); + } } return new Response(result.body as ReadableStream, { From 64b1ae3fceffb21c57f4abb7873312ec3c455b1c Mon Sep 17 00:00:00 2001 From: Dorseuil Nicolas Date: Thu, 8 May 2025 19:12:42 +0200 Subject: [PATCH 2/2] changeset --- .changeset/quiet-games-retire.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/quiet-games-retire.md diff --git a/.changeset/quiet-games-retire.md b/.changeset/quiet-games-retire.md new file mode 100644 index 000000000..476ef2dda --- /dev/null +++ b/.changeset/quiet-games-retire.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/aws": patch +--- + +fix cookies for edge converters