diff --git a/.changeset/sour-eggs-give.md b/.changeset/sour-eggs-give.md new file mode 100644 index 0000000000..6fe64e887c --- /dev/null +++ b/.changeset/sour-eggs-give.md @@ -0,0 +1,5 @@ +--- +"@react-router/dev": patch +--- + +Fix "Status message is not supported by HTTP/2" error during dev when using HTTPS diff --git a/contributors.yml b/contributors.yml index 46fd53bfa9..73053809c5 100644 --- a/contributors.yml +++ b/contributors.yml @@ -145,6 +145,7 @@ - ivanjonas - Ivanrenes - JackPriceBurns +- jacob-briscoe - jacob-ebey - JaffParker - jakkku diff --git a/packages/react-router-dev/vite/node-adapter.ts b/packages/react-router-dev/vite/node-adapter.ts index 8803e34ce1..8f2bc29b78 100644 --- a/packages/react-router-dev/vite/node-adapter.ts +++ b/packages/react-router-dev/vite/node-adapter.ts @@ -86,7 +86,12 @@ export function fromNodeRequest( // https://github.com/solidjs/solid-start/blob/7398163869b489cce503c167e284891cf51a6613/packages/start/node/fetch.js#L162-L185 export async function toNodeRequest(res: Response, nodeRes: ServerResponse) { nodeRes.statusCode = res.status; - nodeRes.statusMessage = res.statusText; + + // HTTP/2 doesn't support status messages + // https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2.4 + if (!nodeRes.req || nodeRes.req.httpVersionMajor < 2) { + nodeRes.statusMessage = res.statusText; + } let cookiesStrings = [];