Hi Vercel team,
I'm seeing a reproducible Vercel Preview deployment failure after upgrading a Next.js application from 16.2.6 to 16.3.1.
The Next.js build itself completes successfully, but Vercel fails afterward during the post-build / onBuildComplete packaging phase with:
ENOENT: no such file or directory, open '/vercel/path0/.next/next-server.js.nft.json'
Reproduction
I have reproduced the same failure three times using the exact same commit:
- Normal GitHub PR Preview deployment
- Preview deployment with the build cache disabled
- Pristine exact-commit Preview deployment with the build cache disabled
All three fail identically after successful Next.js compilation.
I can provide the three affected Vercel deployment IDs privately to Vercel staff if needed.
What I have already verified
- Next.js 16.2.6 -> 16.3.1 is the relevant dependency change
- GitHub CI passes
- Node 22 CI compatibility passes
- Local Next.js 16.3.1 production build passes
- Full E2E passes: 80/80
- Cloudflare/Vinext build passes
- Build cache has been ruled out
- A pristine exact-commit deployment reproduces the failure
- Git dirty state has been ruled out
- Vercel project root directory is correct
- Framework preset is Next.js
- Build command is the normal Next.js build
- There is no postbuild script
- There is no custom repository reference to next-server.js.nft.json
- The repository does not delete or move the NFT artifact
Output tracing comparison
A clean local Next.js 16.3.1 build successfully generates:
.next/next-server.js.nft.json
A clean baseline Next.js 16.2.6 build also generates:
.next/next-server.js.nft.json
Both versions produce the same relevant NFT artifact layout locally.
The failure therefore appears to occur specifically after the successful Next.js build, during Vercel's post-build/onBuildComplete artifact packaging lifecycle.
Environment
- Framework: Next.js
- Next.js: 16.3.1
- Vercel Node.js: 24.x
- Vercel framework preset: Next.js
- Root directory: repository root
- Build command: npm run build
- output: "standalone"
- Turbopack: detected by Vercel
Security context
The upgrade from Next.js 16.2.6 to 16.3.1 was made to address security advisories.
The targeted Next.js advisories are resolved on 16.3.1, so reverting to 16.2.6 is not an acceptable long-term workaround.
Questions
Could a Vercel engineer please help confirm:
-
Is this a known Vercel Next.js builder/adapter issue with Next.js 16.3.1?
-
Is Vercel's onBuildComplete packaging compatible with the output tracing artifacts generated by Next.js 16.3.1?
-
Could this be related to Turbopack and Vercel's post-build packaging?
-
Is there a known interaction between
output: "standalone"and Vercel's Next.js adapter? -
Is there a supported Vercel-side or project-setting remediation?
-
If a repository configuration change is required, what officially supported configuration is recommended?
-
If Next.js 16.3.1 currently has a Vercel builder compatibility issue, is there another patched Next.js version that preserves the relevant security fixes?
I would prefer not to introduce speculative workarounds such as manually creating or copying .nft.json files, symlinking artifacts, or downgrading to the previous vulnerable Next.js version.
Our primary deployment path is native Next.js App Router on Vercel, while we also maintain a Cloudflare/Vinext compatibility path, which currently builds successfully.
Thank you. I can provide the affected deployment IDs and additional diagnostic evidence privately if a Vercel engineer needs them.