This repository was archived by the owner on Mar 13, 2025. It is now read-only.
This repository was archived by the owner on Mar 13, 2025. It is now read-only.
Invalid state: chunk ArrayBuffer is zero-length or detached React 18 renderToReadableStream #203
Closed
Description
Hi,
I don't know if this bug is related to React or is an issue with miniflare.
React 18 now support a new API for server side rendering in a worker context, this is the sample code:
import ReactDOMServer from 'react-dom/server'
async function handler() {
const stream = await ReactDOMServer.renderToReadableStream(
<div>Hello</div>
)
return new Response(stream, {
headers: {
'content-type': 'text/html;charset=UTF-8',
},
})
}
addEventListener('fetch', async (event) => {
event.respondWith(handler(event.request))
})
The first request is ok, the second time you get:
TypeError: Invalid state: chunk ArrayBuffer is zero-length or detached
at new NodeError (node:internal/errors:371:5)
at ReadableByteStreamController.enqueue (node:internal/webstreams/readablestream:1109:13)
at writeChunk (/Users/fuma/projects/snext/node_modules/react-dom/cjs/react-dom-server.browser.development.js:81:1)
at flushSubtree (/Users/fuma/projects/snext/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6312:1)
at flushSegment (/Users/fuma/projects/snext/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6334:1)
at flushSubtree (/Users/fuma/projects/snext/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6307:1)
at flushSegment (/Users/fuma/projects/snext/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6334:1)
at flushSegment (/Users/fuma/projects/snext/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6387:1)
at flushSubtree (/Users/fuma/projects/snext/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6307:1)
at flushSegment (/Users/fuma/projects/snext/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6334:1) {
code: 'ERR_INVALID_STATE'
}