Skip to content
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
@gffuma

Description

@gffuma

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'
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions