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