cloudflare/vinext

`next/after` API (`waitUntil`) not working in deploy mode

已关闭

#1,365 创建于 2026年5月20日

 (1 条评论) (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-20).

Problem

The next/after API (which allows running code after the response has been sent, similar to waitUntil) does not appear to function correctly in deploy mode. Tests for next-after-app-deploy fail, suggesting the after callbacks either do not execute or their effects are not observable.

The after() function is used for tasks like logging, analytics, and cache warming that should not delay the response.

Estimated Impact

~6 test failures.

Affected Test Suites

  • test/e2e/app-dir/next-after-app-deploy/index.test.ts (6 failures)

Recommendation

  1. Reproduce first in vinext's own test suite. Add a test that calls after() in a server component or route handler and verifies the callback executes after the response is sent. Confirm it fails in deploy/production mode.

  2. Study the Next.js after implementation. Search .nextjs-ref/packages/next/src/server/ for the after API to understand how it hooks into the response lifecycle.

  3. Map to Cloudflare Workers waitUntil. On Cloudflare Workers, after() should map to ctx.waitUntil() from the execution context. Ensure the execution context is available in the server entry and that after() callbacks are properly registered.

  4. Check dev/prod parity. The after() API may work in dev mode but fail in production if the execution context is not wired through correctly.

贡献者指南