App Router: client router filter applied to shallow `pushState` and Pages Router redirects
#1,522 建立於 2026年5月22日
倉庫指標
- 星標
- (8,563 顆星)
- PR 合併指標
- (平均合併 1天 1小時) (30 天內合併 462 個 PR)
描述
This issue was created by an agent analysing CI failures from the Next.js Deploy Suite (vinext
mainvs Next.jsv16.2.6, 2026-05-22).
Problem
Several App Router redirect/router tests time out. router.pushState to a path matching a server-side redirect (e.g. /redirect-1) does not stay on the shallow path — it gets rewritten/redirected. Pages Router redirects invoked from App Router do not fire (URL stays at /).
router.pushState('/redirect-1') gets redirected away from the shallow path
Estimated Impact
~2 test failures across the deploy suite.
Affected Test Suites
test/e2e/app-dir/app/index.test.ts(2 failures)
Recommendation
-
Reproduce first in vinext's own test suite. Add a test that calls
history.pushState/router.pushStateto a path that has a server-side redirect rule and assert the URL stays on the shallow path. -
Skip the client router filter for shallow updates. Shallow
pushStateshould not run through the server redirect table. Make sure the rewrite/redirect filter only applies to real navigations. -
Fix Pages Router redirect dispatch. The redirect-from-app-router-to-pages-router path also needs to actually fire the redirect; currently the URL stays at
/.
Part of #1328.