cloudflare/vinext

Pages Router: API route returns 500 when middleware is present

已关闭

#1,477 创建于 2026年5月22日

 (0 条评论) (0 个反应) (0 位负责人)TypeScript (384 个派生)github user discovery
adapter-api-e2ehelp wanted

仓库指标

星标
 (8,625 个星标)
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.

贡献者指南