From 0deb42d1485457471c39099473d9d8466fdd654e Mon Sep 17 00:00:00 2001 From: Nick Taylor Date: Tue, 16 May 2023 17:14:05 -0400 Subject: [PATCH 1/2] fix: checks when Next.js' implementation of ResponseCookies._headers is undefined now --- packages/runtime/src/templates/edge-shared/utils.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/runtime/src/templates/edge-shared/utils.ts b/packages/runtime/src/templates/edge-shared/utils.ts index 35dbd3bb5a..862a8492ab 100644 --- a/packages/runtime/src/templates/edge-shared/utils.ts +++ b/packages/runtime/src/templates/edge-shared/utils.ts @@ -58,6 +58,8 @@ export const addMiddlewareHeaders = async ( } interface ResponseCookies { + // This is non-standard that Next.js adds. + // See github.com/vercel/next.js/blob/de08f8b3d31ef45131dad97a7d0e95fa01001167/packages/next/src/compiled/@edge-runtime/cookies/index.js#L158 readonly _headers: Headers } @@ -191,7 +193,8 @@ export const buildResponse = async ({ } // NextResponse doesn't set cookies onto the originResponse, so we need to copy them over - if (response.cookies._headers.has('set-cookie')) { + // In some cases, it's possible there are no headers set. See https://github.com/netlify/pod-ecosystem-frameworks/issues/475 + if (response.cookies._headers?.has('set-cookie')) { response.originResponse.headers.set('set-cookie', response.cookies._headers.get('set-cookie')!) } From 69cf778b80e772d48716262e616bbe193374c2ed Mon Sep 17 00:00:00 2001 From: Nick Taylor Date: Tue, 16 May 2023 17:54:50 -0400 Subject: [PATCH 2/2] chore: trigger build