diff --git a/.changeset/bright-scissors-grow.md b/.changeset/bright-scissors-grow.md new file mode 100644 index 000000000000..f2cd51db71ae --- /dev/null +++ b/.changeset/bright-scissors-grow.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +fix: avoid overwriting headers for sub-requests made while loading the error page diff --git a/packages/kit/src/runtime/server/respond.js b/packages/kit/src/runtime/server/respond.js index ab51505a897c..5f5ae7b795e4 100644 --- a/packages/kit/src/runtime/server/respond.js +++ b/packages/kit/src/runtime/server/respond.js @@ -508,11 +508,11 @@ export async function respond(request, options, manifest, state) { } if (state.error && event.isSubRequest) { - return await fetch(request, { - headers: { - 'x-sveltekit-error': 'true' - } - }); + // avoid overwriting the headers. This could be a same origin fetch request + // to an external service from the root layout while rendering an error page + const headers = new Headers(request.headers); + headers.set('x-sveltekit-error', 'true'); + return await fetch(request, { headers }); } if (state.error) {