From 9a5b687f977ec84b792b33a0aebbd15062a1e6c2 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 14 Jul 2025 15:12:41 +0900 Subject: [PATCH] fix(rsc): await web handler to avoid unhandled rejection --- packages/plugin-rsc/src/plugin.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index d53f31e15..8f7f7f0f3 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -303,7 +303,9 @@ export default function vitePluginRsc( `[vite-rsc] failed to resolve server handler '${source}'`, ) const mod = await environment.runner.import(resolved.id) - createRequestListener(mod.default)(req, res) + // ensure catching rejected promise + // https://github.com/mjackson/remix-the-web/blob/b5aa2ae24558f5d926af576482caf6e9b35461dc/packages/node-fetch-server/src/lib/request-listener.ts#L87 + await createRequestListener(mod.default)(req, res) } catch (e) { next(e) } @@ -336,7 +338,7 @@ export default function vitePluginRsc( return () => { server.middlewares.use(async (req, res, next) => { try { - handler(req, res) + await handler(req, res) } catch (e) { next(e) }