Skip to content

Throwing AbortController error every response in the Vite dev server when using Remix, Vite, and Cloudflare #10014

@caprolactam

Description

@caprolactam

Reproduction

  1. Generate a project using official cloudflare template.
    npx create-remix@latest --template remix-run/remix/templates/cloudflare
  2. Run the app with the remix vite:build and remix vite:dev.
  3. Visit http://localhost:5173, then the app throws an error.

System Info

System:
    OS: Windows 11 10.0.22631
    CPU: (12) x64 AMD Ryzen 5 5625U with Radeon Graphics
    Memory: 6.28 GB / 23.35 GB
Binaries:
    Node: 20.16.0 - C:\Program Files\nodejs\node.EXE
    npm: 10.8.2 - C:\Program Files\nodejs\npm.CMD
Browsers:
    Edge: Chromium (128.0.2739.79)
    Internet Explorer: 11.0.22621.3527
npmPackages:
    @remix-run/cloudflare: ^2.12.1 => 2.12.1
    @remix-run/cloudflare-pages: ^2.12.1 => 2.12.1
    @remix-run/dev: ^2.12.1 => 2.12.1
    @remix-run/react: ^2.12.1 => 2.12.1
    vite: ^5.1.0 => 5.4.7

Used Package Manager

npm

Expected Behavior

The app should run without this error.

Actual Behavior

Throwing this error every response.

TypeError [ERR_INVALID_STATE]: Invalid state: Controller is already closed
    at ReadableByteStreamController.close (node:internal/webstreams/readablestream:1156:13)
    at close (/project/workspace/node_modules/react-dom/cjs/react-dom-server.browser.development.js:143:15)
    at flushCompletedQueues (/project/workspace/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6906:9)
    at abort (/project/workspace/node_modules/react-dom/cjs/react-dom-server.browser.development.js:6951:7)
    at EventTarget.listener (/project/workspace/node_modules/react-dom/cjs/react-dom-server.browser.development.js:7000:9)
    at [nodejs.internal.kHybridDispatch] (node:internal/event_target:826:20)
    at EventTarget.dispatchEvent (node:internal/event_target:761:26)
    at abortSignal (node:internal/abort_controller:371:10)
    at AbortController.abort (node:internal/abort_controller:393:5)
    at EventTarget.abort (node:internal/deps/undici/undici:6279:21) {
  code: 'ERR_INVALID_STATE'
}

Note that the app works fine in Wrangler(wrangler pages dev ./build/client), but this error occurs when using the Vite dev server. Additionally, this error is thrown when using Remix version is 2.12.1, but not with version 2.12.0. I think the changes in PR #9976 are causing this issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions