diff --git a/packages/next/server/web/sandbox/sandbox.ts b/packages/next/server/web/sandbox/sandbox.ts index 947d0d6132af673..773936c75017435 100644 --- a/packages/next/server/web/sandbox/sandbox.ts +++ b/packages/next/server/web/sandbox/sandbox.ts @@ -6,6 +6,12 @@ import { requestToBodyStream } from '../../body-streams' export const ErrorSource = Symbol('SandboxError') +const FORBIDDEN_HEADERS = [ + 'content-length', + 'content-encoding', + 'transfer-encoding', +] + type RunnerFn = (params: { name: string env: string[] @@ -74,12 +80,16 @@ export const run = withTaggedErrors(async (params) => { : undefined try { - return await edgeFunction({ + const result = await edgeFunction({ request: { ...params.request, body: cloned && requestToBodyStream(runtime.context, cloned), }, }) + for (const headerName of FORBIDDEN_HEADERS) { + result.response.headers.delete(headerName) + } + return result } finally { await params.request.body?.finalize() } diff --git a/test/e2e/edge-compiler-can-import-blob-assets/app/pages/api/edge.js b/test/e2e/edge-compiler-can-import-blob-assets/app/pages/api/edge.js index dd24197003cd826..49da52df583bda7 100644 --- a/test/e2e/edge-compiler-can-import-blob-assets/app/pages/api/edge.js +++ b/test/e2e/edge-compiler-can-import-blob-assets/app/pages/api/edge.js @@ -38,20 +38,14 @@ const handlers = new Map([ 'remote-full', async () => { const url = new URL('https://example.vercel.sh') - const response = await fetch(url) - const headers = new Headers(response.headers) - headers.delete('content-encoding') - return new Response(response.body, { headers, status: response.status }) + return fetch(url) }, ], [ 'remote-with-base', async () => { const url = new URL('/', 'https://example.vercel.sh') - const response = await fetch(url) - const headers = new Headers(response.headers) - headers.delete('content-encoding') - return new Response(response.body, { headers, status: response.status }) + return fetch(url) }, ], ])