diff --git a/.changeset/funny-brooms-fold.md b/.changeset/funny-brooms-fold.md new file mode 100644 index 000000000000..d4193bbc90e1 --- /dev/null +++ b/.changeset/funny-brooms-fold.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-node': patch +--- + +fix: do not crash server if specified `ADDRESS_HEADER` is missing from a request diff --git a/packages/adapter-node/src/handler.js b/packages/adapter-node/src/handler.js index 8a1390a78f25..bae1854bdd7e 100644 --- a/packages/adapter-node/src/handler.js +++ b/packages/adapter-node/src/handler.js @@ -91,20 +91,20 @@ const ssr = async (req, res) => { return; } - if (address_header && !(address_header in req.headers)) { - throw new Error( - `Address header was specified with ${ - ENV_PREFIX + 'ADDRESS_HEADER' - }=${address_header} but is absent from request` - ); - } - setResponse( res, await server.respond(request, { platform: { req }, getClientAddress: () => { if (address_header) { + if (!(address_header in req.headers)) { + throw new Error( + `Address header was specified with ${ + ENV_PREFIX + 'ADDRESS_HEADER' + }=${address_header} but is absent from request` + ); + } + const value = /** @type {string} */ (req.headers[address_header]) || ''; if (address_header === 'x-forwarded-for') {