-
Notifications
You must be signed in to change notification settings - Fork 49.1k
Closed
Labels
React 18Bug reports, questions, and general feedback about React 18Bug reports, questions, and general feedback about React 18Type: Discussion
Description
When using renderToReadableStream
for e.g. Cloudflare Workers runtimes, I'm noticing this error on the server:
TypeError: The stream is not in a state that permits close
at ReadableStreamDefaultController.close (/Users/joshlarson/src/github.com/jplhomer/vite-streaming-ssr-demo/node_modules/web-streams-polyfill/src/lib/readable-stream/default-controller.ts:72:13)
at Mc (/Users/joshlarson/src/github.com/jplhomer/vite-streaming-ssr-demo/dist/worker/worker.js:3636:145)
at Bc (/Users/joshlarson/src/github.com/jplhomer/vite-streaming-ssr-demo/dist/worker/worker.js:3457:33)
at ping (/Users/joshlarson/src/github.com/jplhomer/vite-streaming-ssr-demo/dist/worker/worker.js:3128:24)
GET / 200 OK (2091.13ms)
I'm assuming this results in the following malformed chunk being sent to the stream:
<div hidden id="<div hidden id="S:1">
Which results in the client failing:
Uncaught TypeError: Cannot read properties of null (reading 'parentNode')
at $RS (127.0.0.1/:11)
at 127.0.0.1/:11
I put together a reproduction here, powered by Miniflare for the Workers runtime: https://github.com/jplhomer/vite-streaming-ssr-demo
Possible issues
- Could this be related to the "fundamentally flawed" nature of Web Streams implementations in e.g. Cloudflare Workers runtime? Why is React not creating a ReadableStream in pipeToNodeWritable? reactwg/react-18#66 (comment)
- Is something going on with corking/uncorking, as per Requirements for Building a new Streaming JavaScript Environment (Node.js alternatives) reactwg/react-18#91
- Maybe something's wrong with Miniflare's polyfill and this is a non-issue, coming from
web-streams-polyfill
? - Finally, it's possible something is wrong with the Vite version of the example I've put together. I could try rebuilding with webpack if it's determined none of these items apply.
Metadata
Metadata
Assignees
Labels
React 18Bug reports, questions, and general feedback about React 18Bug reports, questions, and general feedback about React 18Type: Discussion