next dev only compiles what you open and skips type checking and linting for speed. next build checks the whole project. The errors were always there, dev just didn't tell you.
Don't set ignoreBuildErrors. A lot of these are real bugs waiting (type 'never' usually means Supabase/fetch data that TypeScript thinks can't exist, so .name may crash at runtime).
Workflow that works with Cursor:
- Run
npx tsc --noEmitlocally, it lists every type error without building. - Give Cursor one file at a time: "fix the type errors in app/dashboard/page.tsx, don't change behavior, don't use
any". - Unused-variable lint errors: just delete the unused imports.
- Rerun
tscafter each file.
40 errors sounds like a lot but usually it's 5 root causes repeated.
npm run build (or tsc) to a pre-push hook or CI so you find out before Vercel does. katja_s · edited