What versions & operating system are you using?
System:
OS: macOS 26.3
CPU: (12) arm64 Apple M2 Max
Memory: 273.33 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 24.14.0 - /opt/homebrew/opt/node@24/bin/node
npm: 11.9.0 - /opt/homebrew/opt/node@24/bin/npm
pnpm: 10.18.3 - /opt/homebrew/opt/node@24/bin/pnpm
bun: 1.3.10 - /opt/homebrew/bin/bun
npmPackages:
@cloudflare/vite-plugin: ^1.25.6 => 1.25.6
miniflare: ^4.20260305.0 => 4.20260305.0
wrangler: ^4.69.0 => 4.69.0
Please provide a link to a minimal reproduction
https://github.com/nihalgonsalves/waku/tree/755299431ece64bd89d297a5dad2aa951d3cd399/examples/07_cloudflare
Describe the Bug
Accessing a binding, such as D1, in a async (RSC) component and hot reloading causes a crash with the @cloudflare/vite-plugin. This seems similar to the solved issue #9519 (PR #9993).
Simply making a query inside the component is enough:
export default async function HomePage() {
// ...
const result = await env.test_db.prepare(
"SELECT 1",
)
.run();
// ...
}
After a save or two, this error is printed in the server logs:
Warning: A promise was resolved or rejected from a different request context than the one it was created in. However, the creating request has already been completed or canceled. Continuations for that request are unlikely to run safely and have been canceled. If this behavior breaks your worker, consider setting the `no_handle_cross_request_promise_resolution` compatibility flag for your worker.
at <anonymous>
at resolve (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_rsc/react-server-dom-webpack_client__edge.js:3425:13)
at wakeChunk (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_rsc/react-server-dom-webpack_client__edge.js:1215:44)
at wakeChunkIfInitialized (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_rsc/react-server-dom-webpack_client__edge.js:1241:13)
at resolveModelChunk (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_rsc/react-server-dom-webpack_client__edge.js:1323:70)
at processFullBinaryRow (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_rsc/react-server-dom-webpack_client__edge.js:3220:107)
at progress (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_rsc/react-server-dom-webpack_client__edge.js:3375:20)
This eventually causes the browser load to crash with:
Error: The Workers runtime canceled this request because it detected that your Worker's code had hung and would never generate a response. Refer to: https://developers.cloudflare.com/workers/observability/errors/
at async Object.fetch (file:///<>/waku/examples/07_cloudflare/node_modules/.pnpm/miniflare@4.20260305.0/node_modules/miniflare/dist/src/workers/core/entry.worker.js:4497:22)
If you add the no_handle_cross_request_promise_resolution compatibility flag the first error mention, you'll get this error instead:
[SSR Error]
at fn (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_ssr/react-server-dom-webpack_client__edge.js?v=a4993e9a:2405:20)
at fn (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_ssr/react-server-dom-webpack_client__edge.js?v=a4993e9a:2405:20)
Error: Cannot perform I/O on behalf of a different request. I/O objects (such as streams, request/response bodies, and others) created in the context of one request handler cannot be accessed from a different request's handler. This is a limitation of Cloudflare Workers which allows us to improve overall performance. (I/O type: SpanParent)
at RpcProperty.<anonymous> (<anonymous>)
at CustomModuleRunner.cachedModule (workers/runner-worker.js:1196:76)
at request (workers/runner-worker.js:1123:94)
at dynamicRequest (workers/runner-worker.js:1125:122)
at Object.load (<>/waku/examples/07_cloudflare/node_modules/.pnpm/@vitejs+plugin-rsc@0.5.21_react-dom@19.2.4_react@19.2.4__react-server-dom-webpack@19.2._336fd4df9d8e62120fabaccf47fa08cf/node_modules/@vitejs/plugin-rsc/dist/ssr.js:22:10)
at <>/waku/examples/07_cloudflare/node_modules/.pnpm/@vitejs+plugin-rsc@0.5.21_react-dom@19.2.4_react@19.2.4__react-server-dom-webpack@19.2._336fd4df9d8e62120fabaccf47fa08cf/node_modules/@vitejs/plugin-rsc/dist/core/ssr.js:10:18
at <>/waku/examples/07_cloudflare/node_modules/.pnpm/@vitejs+plugin-rsc@0.5.21_react-dom@19.2.4_react@19.2.4__react-server-dom-webpack@19.2._336fd4df9d8e62120fabaccf47fa08cf/node_modules/@vitejs/plugin-rsc/dist/dist-yW9-EeG1.js:34:22
at globalThis.__vite_rsc_require__ (<>/waku/examples/07_cloudflare/node_modules/.pnpm/@vitejs+plugin-rsc@0.5.21_react-dom@19.2.4_react@19.2.4__react-server-dom-webpack@19.2._336fd4df9d8e62120fabaccf47fa08cf/node_modules/@vitejs/plugin-rsc/dist/shared-Dhw3vs8e.js:16:21)
at requireAsyncModule (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_ssr/react-server-dom-webpack_client__edge.js:53:23)
at preloadModule (<>/waku/examples/07_cloudflare/node_modules/.vite/deps_ssr/react-server-dom-webpack_client__edge.js:83:64)
Note that for this specific Waku example linked as a reproduction it's more reliably triggered via Safari.
I can trigger a similar error using TanStack Start + server functions:
npm create cloudflare@latest -- my-tanstack-start-app --framework=tanstack-start
const serverLoader = createServerFn({ method: "GET" }).handler(async () => {
const result = await env.test_db.prepare("SELECT 456").run();
return result;
});
export const Route = createFileRoute("/")({
loader: async () => {
return serverLoader();
},
component: App,
});
This crashes less often but the error is nevertheless there.
Related issue in the Waku repository wakujs/waku#1975
Please provide any relevant error logs
No response
What versions & operating system are you using?
Please provide a link to a minimal reproduction
https://github.com/nihalgonsalves/waku/tree/755299431ece64bd89d297a5dad2aa951d3cd399/examples/07_cloudflare
Describe the Bug
Accessing a binding, such as D1, in a async (RSC) component and hot reloading causes a crash with the
@cloudflare/vite-plugin. This seems similar to the solved issue #9519 (PR #9993).Simply making a query inside the component is enough:
After a save or two, this error is printed in the server logs:
This eventually causes the browser load to crash with:
If you add the no_handle_cross_request_promise_resolution compatibility flag the first error mention, you'll get this error instead:
Note that for this specific Waku example linked as a reproduction it's more reliably triggered via Safari.
I can trigger a similar error using TanStack Start + server functions:
This crashes less often but the error is nevertheless there.
Related issue in the Waku repository wakujs/waku#1975
Please provide any relevant error logs
No response