cloudflare/vinext

Pages Router: API route returns 500 when middleware is present

已關閉

#1,477 建立於 2026年5月22日

 (0 則留言) (0 個反應) (0 位負責人)TypeScript (385 個分叉)github user discovery
adapter-api-e2ehelp wanted

倉庫指標

星標
 (8,633 顆星)
PR 合併指標
 (平均合併 1天 1小時) (30 天內合併 462 個 PR)

描述

This issue was created by an agent analysing CI failures from the Next.js Deploy Suite (vinext main vs Next.js v16.2.6, 2026-05-22).

Problem

When a Pages Router app defines middleware and a client makes a request to /api/*, the API handler returns Internal Server Error (HTTP 500) instead of executing. The middleware pipeline appears to interfere with API route dispatch.

GET /api/* with middleware returns 500

Estimated Impact

~2 test failures across the deploy suite.

Affected Test Suites

  • test/e2e/proxy-request-with-middleware/test/index.test.ts (2 failures)

Recommendation

  1. Reproduce first in vinext's own test suite. Add a Pages Router fixture with a no-op middleware.ts and pages/api/hello.ts. Assert /api/hello returns 200.

  2. Fix the middleware -> API route handoff. After middleware runs and chooses to fall through (no rewrite/redirect), /api/* routes must dispatch normally instead of crashing.

  3. Related, but not duplicate, of #1338. #1338 covers edge runtime API routes returning 500/404; this is node runtime API routes returning 500 specifically because middleware is configured.

貢獻者指南