From b286439e551a12da39669bdc602fdf8da6fe7083 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 22 Apr 2026 00:09:02 -0700 Subject: [PATCH] =?UTF-8?q?[eric]=209router=20windows=20CI=20fix:=20ignore?= =?UTF-8?q?=20XP-era=20junction=20points=20(Application=20Data)=20in=20web?= =?UTF-8?q?pack=20snapshot+watch=20=E2=80=94=20caused=20EPERM=20scandir=20?= =?UTF-8?q?cascading=20into=20=20=20FlightClientEntryPlugin=20TypeError=20?= =?UTF-8?q?on=20GitHub=20Actions=20runneradmin=20user?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 9router/next.config.mjs | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/9router/next.config.mjs b/9router/next.config.mjs index 04a5a26a..164c60d0 100644 --- a/9router/next.config.mjs +++ b/9router/next.config.mjs @@ -16,8 +16,27 @@ const nextConfig = { path: false, }; } - // Stop watching logs directory to prevent HMR during streaming - config.watchOptions = { ...config.watchOptions, ignored: /[\\/](logs|\.next)[\\/]/ }; + // Stop watching logs directory to prevent HMR during streaming. + // Also ignore Windows XP-era junction points in user profile that loop + // back on themselves and cause `EPERM: operation not permitted, scandir` + // on GitHub Actions runners (cascades into FlightClientEntryPlugin + // crash). Local Windows users with normal accounts don't hit this. + config.watchOptions = { + ...config.watchOptions, + ignored: [ + /[\\/](logs|\.next)[\\/]/, + '**/Application Data/**', + '**/Local Settings/**', + '**/AppData/Local/Application Data/**', + ], + }; + // Disable webpack's user-profile + node_modules snapshotting that + // triggers the same EPERM scan during `next build` on CI Windows. + config.snapshot = { + ...(config.snapshot || {}), + managedPaths: [], + immutablePaths: [], + }; return config; }, async rewrites() {