Git Integration fails after successful build for rootDirectory=web Next.js app

We have a Vercel Git Integration deployment failing for a Next.js project whose configured Root Directory is web.

Project:

  • name: brenda-voice
  • rootDirectory: web
  • framework: nextjs
  • nodeVersion: 24.x

Failing deployment:

  • https://brenda-voice-9dg4v4col-theonlyperson.vercel.app

What happens:

  • Build completes successfully.
  • next build, TypeScript, and static page generation all finish successfully.
  • After build completion, Vercel marks the deployment as Error during finalization.

Exact error from the deployment record:

  • ENOENT: no such file or directory, lstat '/vercel/path0/.next/routes-manifest-deterministic.json'

Why this looks wrong:

  • The app lives in the web/ subdirectory.
  • The project is configured with rootDirectory = web.
  • The build output is under /vercel/path0/web/.next, but finalization appears to be looking under /vercel/path0/.next at repo root.

Additional context:

  • Workspace path-length guard passes with zero filename/path violations.
  • Local app build also passes.
  • Recent production deployments for this project are failing with the same post-build behavior.

Is this a known Vercel / Next.js subdirectory-project bug around routes-manifest-deterministic.json lookup during deployment finalization? If so, what is the recommended workaround?

Hi shh,

The important clue is that the build output is created under:

/vercel/path0/web/.next

but the final error is looking for:

/vercel/path0/.next/routes-manifest-deterministic.json

So I’d treat this as a post-build/finalization path issue before changing the app code. If next build and static generation already complete successfully, the app build itself is probably not the failing layer.

A good isolation test is to bypass Git Integration once and deploy a prebuilt output from the app root:

cd web
vercel pull --yes --environment=production
vercel build --prod
vercel deploy --prebuilt --archive=tgz --prod

If that succeeds, it strongly suggests the project code is fine and the failure is specific to Git Integration + Root Directory finalization.

I’d also double-check these project settings:

Root Directory: web
Framework Preset: Next.js
Output Directory: not manually overridden
Build Command: not manually forcing output outside web

Vercel’s build settings docs mention that the Root Directory setting applies to the app Vercel builds and that framework output directories are normally auto-detected:

If the prebuilt deploy also fails with the same missing /vercel/path0/.next/... path, then the next useful detail would be the vercel build --debug output, with any secrets removed.