Skip to content

Vercel build is green and /eve/v1/health passes, but every Next.js route 404s when the project's Framework Preset isn't 'nextjs' #48

Description

@fmhall

Expected Behavior

A project connected to this repo either serves the Next.js app or fails the build with a clear reason. The deploy button sets the framework for you; a CLI-created project does not, and nothing in the repo detects that.

Current Behavior

vercel project add <name> && vercel link && vercel git connect leaves Framework Preset = Other. A Git-triggered build then:

  1. runs pnpm turbo run build:vercel (from vercel.json) → next build succeeds and prints every route;
  2. withEve()'s nitro step writes the eve service to .eve/vercel-services/eve/.vercel/output;
  3. the deployment goes Ready

…but /, /sign-in, and every other Next route return 404 x-vercel-error: NOT_FOUND, while /eve/v1/health returns {"ok":true,"status":"ready"}. Because the build log is clean and the health check passes, it reads as an app bug; I spent a while comparing the nitro and Next outputs before checking the preset. The fix is vercel api /v9/projects/<id> --method PATCH --field framework=nextjs (or the dashboard) plus a redeploy.

Per node_modules/eve/docs/guides/frontend/nextjs.mdx, "the Next.js app itself remains the default app" — which is only true when Vercel actually uses the Next.js builder.

Possible Solution

  • Document the framework requirement next to the deploy instructions in README / AGENTS.md (one line: "the Vercel project's Framework Preset must be Next.js").
  • Have withEve() (or the build:vercel script) fail loudly when VERCEL is set and the detected framework isn't nextjs, since the Next output is otherwise silently dropped.

Minimal Reproducible Example

  1. vercel project add x --scope <team>; vercel link --project x; vercel git connect
  2. Trigger a Git deploy; open the production domain → 404; /eve/v1/health → 200

Context

First deploy of a fresh open-instinct3 project from the CLI on 2026-08-27.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions