I’m trying to deploy a standard tanstack demo app in my monorepo in a preview branch deployment.
To give some context: the project is originally a nextjs project with the preset set to nextjs.
I tried overriding it in the vercel.json only in my branch and set “tanstack-start” or “nitro” as a preset and put the correct output and build command also.
I also tried directly putting tanstack-start preset in the settings of the project.
Both doesn’t work.
The vite.config.js is a standard vite:
import { defineConfig } from 'vite'
import { devtools } from '@tanstack/devtools-vite'
import { tanstackStart } from '@tanstack/react-start/plugin/vite'
import viteReact from '@vitejs/plugin-react'
import viteTsConfigPaths from 'vite-tsconfig-paths'
import { nitro } from 'nitro/vite'
import { config as dotenvConfig } from 'dotenv';
import { pnpmWorkspaceRootSync } from '@greenisland/vite-config/workspaceRoot';
import path from 'path';
import { getNextPublicEnvDefine } from './src/vite-env-define';
dotenvConfig({ path: path.join(pnpmWorkspaceRootSync(), '.env') });
const config = defineConfig({
plugins: [
devtools(),
// this is the plugin that enables path aliases
viteTsConfigPaths({
projects: ['./tsconfig.json'],
}),
tanstackStart(),
nitro(),
viteReact(),
],
build: {
sourcemap: true,
commonjsOptions: {
transformMixedEsModules: true,
},
cssMinify: 'lightningcss',
}
})
export default config
The deployment “succeeded” but navigating to the url I see the following error:
404: NOT_FOUND
Code: NOT_FOUND
ID: cdg1::fd545-1765541235180-70e320df6da9
The log of the build. It seems the build succeeded
14:22:28.855 Running build in Portland, USA (West) – pdx1 (Enhanced Build Machine)
14:22:28.856 Build machine configuration: 8 cores, 16 GB
14:22:28.864 Cloning XXXXXXXX (Branch: feat/PC-5150, Commit: 086cf2a)
14:22:28.864 Skipping build cache, deployment was triggered without cache.
14:22:33.856 Cloning completed: 4.992s
14:22:35.295 Running "vercel build"
14:22:35.719 Vercel CLI 49.1.2
14:22:35.831 Detected OpenTelemetry dependency: @vercel/otel@1.13.0, which meets the minimum version requirement of 1.11.0
14:22:36.725 > Detected ENABLE_EXPERIMENTAL_COREPACK=1 and "pnpm@10.17.1" in package.json
14:22:37.090 Installing dependencies...
14:22:37.156 ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-10.17.1.tgz
14:22:38.214 Scope: all 64 workspace projects
14:22:38.378 Lockfile is up to date, resolution step is skipped
14:22:38.511 Progress: resolved 1, reused 0, downloaded 0, added 0
14:22:38.756 Packages: +3126
14:22:38.757 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
14:22:39.515 Progress: resolved 3126, reused 0, downloaded 73, added 48
14:22:40.543 Progress: resolved 3126, reused 0, downloaded 99, added 98
14:22:41.544 Progress: resolved 3126, reused 0, downloaded 117, added 110
14:22:42.545 Progress: resolved 3126, reused 0, downloaded 154, added 136
14:22:43.544 Progress: resolved 3126, reused 0, downloaded 219, added 141
14:22:44.544 Progress: resolved 3126, reused 0, downloaded 258, added 143
14:22:45.545 Progress: resolved 3126, reused 0, downloaded 298, added 156
14:22:46.546 Progress: resolved 3126, reused 0, downloaded 333, added 165
14:22:47.546 Progress: resolved 3126, reused 0, downloaded 367, added 173
14:22:48.546 Progress: resolved 3126, reused 0, downloaded 480, added 279
14:22:49.546 Progress: resolved 3126, reused 0, downloaded 591, added 303
14:22:50.433 WARN GET https://registry.npmjs.org/debug/-/debug-2.6.9.tgz error (ERR_PNPM_FETCH_500). Will retry in 10 seconds. 2 retries left.
14:22:50.547 Progress: resolved 3126, reused 0, downloaded 780, added 330
14:22:51.548 Progress: resolved 3126, reused 0, downloaded 951, added 358
14:22:51.994 WARN GET https://registry.npmjs.org/@orval/axios/-/axios-7.13.0.tgz error (ERR_PNPM_FETCH_500). Will retry in 10 seconds. 2 retries left.
14:22:52.550 Progress: resolved 3126, reused 0, downloaded 1180, added 454
14:22:53.551 Progress: resolved 3126, reused 0, downloaded 1314, added 483
14:22:54.552 Progress: resolved 3126, reused 0, downloaded 1391, added 507
14:22:55.552 Progress: resolved 3126, reused 0, downloaded 1531, added 527
14:22:56.552 Progress: resolved 3126, reused 0, downloaded 1661, added 581
14:22:57.556 Progress: resolved 3126, reused 0, downloaded 1792, added 780
14:22:58.565 Progress: resolved 3126, reused 0, downloaded 1970, added 1058
14:22:59.566 Progress: resolved 3126, reused 0, downloaded 2260, added 1421
14:23:00.565 Progress: resolved 3126, reused 0, downloaded 2594, added 1611
14:23:00.729 WARN GET https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz error (ERR_PNPM_FETCH_500). Will retry in 10 seconds. 2 retries left.
14:23:01.565 Progress: resolved 3126, reused 0, downloaded 2878, added 1765
14:23:02.565 Progress: resolved 3126, reused 0, downloaded 3055, added 1847
14:23:03.566 Progress: resolved 3126, reused 0, downloaded 3098, added 1886
14:23:04.567 Progress: resolved 3126, reused 0, downloaded 3098, added 2006
14:23:05.567 Progress: resolved 3126, reused 0, downloaded 3098, added 2241
14:23:06.567 Progress: resolved 3126, reused 0, downloaded 3098, added 2542
14:23:07.567 Progress: resolved 3126, reused 0, downloaded 3098, added 2732
14:23:08.567 Progress: resolved 3126, reused 0, downloaded 3098, added 3058
14:23:09.568 Progress: resolved 3126, reused 0, downloaded 3098, added 3122
14:23:10.569 Progress: resolved 3126, reused 0, downloaded 3098, added 3125
14:23:10.788 Progress: resolved 3126, reused 0, downloaded 3099, added 3126, done
14:23:11.966 .../node_modules/@swc/core postinstall$ node postinstall.js
14:23:11.997 .../node_modules/unrs-resolver postinstall$ napi-postinstall unrs-resolver 1.11.1 check
14:23:11.998 .../node_modules/commitlint-config-jira postinstall$ opencollective-postinstall || exit 0
14:23:11.999 .../esbuild@0.27.0/node_modules/esbuild postinstall$ node install.js
14:23:12.075 .../esbuild@0.25.10/node_modules/esbuild postinstall$ node install.js
14:23:12.078 .../node_modules/@swc/core postinstall: Done
14:23:12.110 .../node_modules/unrs-resolver postinstall: Done
14:23:12.110 .../node_modules/commitlint-config-jira postinstall: Done
14:23:12.118 .../node_modules/core-js-pure postinstall$ node -e "try{require('./postinstall')}catch(e){}"
14:23:12.147 .../esbuild@0.27.0/node_modules/esbuild postinstall: Done
14:23:12.149 .../sharp@0.34.4/node_modules/sharp install$ node install/check.js
14:23:12.183 .../node_modules/core-js-pure postinstall: Done
14:23:12.184 .../esbuild@0.25.10/node_modules/esbuild postinstall: Done
14:23:12.186 .../node_modules/@sentry/cli postinstall$ node ./scripts/install.js
14:23:12.244 .../node_modules/@swc/core postinstall$ node postinstall.js
14:23:12.692 .../esbuild@0.14.47/node_modules/esbuild postinstall$ node install.js
14:23:12.721 .../node_modules/@swc/core postinstall: Done
14:23:12.733 .../node_modules/@parcel/watcher install$ node scripts/build-from-source.js
14:23:12.767 .../node_modules/@sentry/cli postinstall: Done
14:23:12.767 .../sharp@0.34.4/node_modules/sharp install: Done
14:23:12.786 .../esbuild@0.14.47/node_modules/esbuild postinstall: Done
14:23:12.804 .../node_modules/@parcel/watcher install: Done
14:23:12.994 .../node_modules/@vercel/speed-insights postinstall$ node scripts/postinstall.mjs
14:23:13.052 .../node_modules/@vercel/speed-insights postinstall: Done
14:23:13.635
14:23:13.635 dependencies:
14:23:13.635 + @auth0/nextjs-auth0 4.8.0
14:23:13.635 + @contentful/live-preview 4.6.38
14:23:13.635 + @contentful/rich-text-html-renderer 16.6.10
14:23:13.635 + @contentful/rich-text-plain-text-renderer 16.0.7
14:23:13.635 + @contentful/rich-text-react-renderer 16.1.0
14:23:13.635 + @contentful/rich-text-types 17.2.2
14:23:13.635 + @crowdin/cli 4.11.0
14:23:13.635 + @dnd-kit/core 6.3.1
14:23:13.635 + @dnd-kit/utilities 3.2.2
14:23:13.635 + @greenisland/eslint-config 0.0.0 <- libs/eslint-config
14:23:13.635 + @greenisland/typescript-config 0.0.0 <- libs/typescript-config
14:23:13.636 + @headlessui/react 1.7.17
14:23:13.636 + @hookform/resolvers 3.0.1
14:23:13.636 + @internationalized/date 3.9.0
14:23:13.636 + @lilib/hooks 1.0.3
14:23:13.636 + @livechat/widget-react 1.3.4
14:23:13.636 + @mux/mux-video-react 0.8.5
14:23:13.636 + @next/third-parties 15.4.5
14:23:13.636 + @opentelemetry/api 1.9.0
14:23:13.636 + @opentelemetry/api-logs 0.50.0
14:23:13.636 + @phosphor-icons/react 2.1.10
14:23:13.636 + @plaiceholder/next 3.0.0
14:23:13.636 + @radix-ui/react-accordion 1.2.12
14:23:13.636 + @radix-ui/react-collapsible 1.1.12
14:23:13.636 + @radix-ui/react-dialog 1.1.15
14:23:13.636 + @radix-ui/react-select 2.2.6
14:23:13.636 + @radix-ui/react-separator 1.1.7
14:23:13.636 + @radix-ui/react-tabs 1.1.13
14:23:13.636 + @radix-ui/react-tooltip 1.2.8
14:23:13.636 + @radix-ui/react-visually-hidden 1.2.3
14:23:13.636 + @react-aria/datepicker 3.15.1
14:23:13.636 + @react-aria/overlays 3.29.1
14:23:13.636 + @rive-app/react-canvas 4.23.4
14:23:13.637 + @ryuuji3/react-mask-hook 1.0.1
14:23:13.637 + @sentry/nextjs 10.17.0
14:23:13.637 + @swc/helpers 0.5.12
14:23:13.637 + @tanstack/react-query 5.90.2
14:23:13.637 + @tanstack/react-table 8.21.3
14:23:13.637 + @thumbmarkjs/thumbmarkjs 0.20.6
14:23:13.637 + @types/dompurify 3.2.0
14:23:13.637 + @types/estree 1.0.8
14:23:13.637 + @unpic/react 0.1.15
14:23:13.637 + @vercel/analytics 1.5.0
14:23:13.637 + @vercel/edge-config 0.4.1
14:23:13.637 + @vercel/og 0.5.20
14:23:13.637 + @vercel/otel 1.13.0
14:23:13.637 + @vercel/speed-insights 1.2.0
14:23:13.637 + @vitejs/plugin-react-swc 4.1.0
14:23:13.637 + auth0-guardian-js 1.3.3
14:23:13.637 + auth0-js 9.28.0
14:23:13.637 + autoprefixer 10.4.21
14:23:13.637 + axios 1.12.2
14:23:13.637 + classnames 2.5.1
14:23:13.637 + client-only 0.0.1
14:23:13.637 + clsx 2.1.1
14:23:13.637 + contentful 10.15.1
14:23:13.637 + contentful-management 11.3.0
14:23:13.637 + country-iso-3-to-2 1.1.1
14:23:13.637 + countup.js 2.8.0
14:23:13.637 + css 3.0.0
14:23:13.637 + dayjs 1.11.18
14:23:13.637 + deepmerge 4.3.1
14:23:13.638 + detectincognitojs 1.6.2
14:23:13.638 + dompurify 3.2.7
14:23:13.638 + framer-motion 8.5.5
14:23:13.638 + fuse.js 7.1.0
14:23:13.638 + google-map-react 2.2.5
14:23:13.638 + google-maps-react-markers 2.0.15
14:23:13.638 + graphql 16.11.0
14:23:13.638 + gray-matter 4.0.3
14:23:13.638 + i 0.3.7
14:23:13.638 + i18n-iso-countries 7.14.0
14:23:13.638 + i18next 23.16.8
14:23:13.638 + i18next-http-backend 2.7.3
14:23:13.638 + ibantools 4.3.5
14:23:13.638 + isomorphic-dompurify 2.12.0
14:23:13.638 + jose 6.1.0
14:23:13.638 + js-cookie 3.0.5
14:23:13.638 + jsdom 24.1.3
14:23:13.638 + jsonwebtoken 9.0.2
14:23:13.638 + jwt-decode 4.0.0
14:23:13.638 + keen-slider 6.8.6
14:23:13.638 + ky 1.1.2
14:23:13.638 + ky-universal 0.12.0
14:23:13.638 + lodash-es 4.17.21
14:23:13.638 + mailcheck 1.1.1
14:23:13.638 + mjml 4.16.1
14:23:13.638 + modern-normalize 2.0.0
14:23:13.638 + next 15.5.4
14:23:13.638 + next-intl 3.23.2
14:23:13.639 + next-nprogress-bar 2.1.2
14:23:13.639 + next-seo 6.8.0
14:23:13.639 + next-sitemap 4.2.3
14:23:13.639 + npm 11.6.2
14:23:13.639 + nuqs 2.6.0
14:23:13.639 + odometer_countup 1.0.4
14:23:13.639 + plaiceholder 3.0.0
14:23:13.639 + postcode-validator 3.10.5
14:23:13.639 + pusher-js 8.3.0
14:23:13.639 + query-string 8.2.0
14:23:13.639 + react 19.1.1
14:23:13.639 + react-aria 3.43.2
14:23:13.639 + react-aria-components 1.3.1
14:23:13.639 + react-device-detect 2.2.3
14:23:13.639 + react-dom 19.1.1
14:23:13.639 + react-dropzone 14.2.3
14:23:13.639 + react-hook-form 7.63.0
14:23:13.639 + react-intersection-observer 9.16.0
14:23:13.639 + react-phone-number-input 3.4.12
14:23:13.639 + react-stately 3.41.0
14:23:13.640 + react-timer-hook 3.0.8
14:23:13.640 + react-zoom-pan-pinch 3.7.0
14:23:13.640 + remark 15.0.1
14:23:13.640 + remark-gfm 4.0.1
14:23:13.640 + remark-html 16.0.1
14:23:13.640 + rss 1.2.2
14:23:13.640 + scroll-lock 2.1.5
14:23:13.640 + server-only 0.0.1
14:23:13.640 + sharp 0.34.4
14:23:13.640 + sonner 1.7.4
14:23:13.640 + svg-to-jsx 1.0.4
14:23:13.640 + swiper 9.4.1
14:23:13.640 + tslib 2.6.2
14:23:13.640 + ua-parser-js 1.0.37
14:23:13.640 + underscore 1.13.6
14:23:13.641 + use-mask-input 3.5.2
14:23:13.641 + usehooks-ts 3.1.1
14:23:13.641 + uuid 9.0.1
14:23:13.641 + vaul 1.0.0
14:23:13.641 + vercel 33.7.1
14:23:13.641 + yup 1.3.3
14:23:13.641
14:23:13.641 devDependencies:
14:23:13.641 + @aws-sdk/client-s3 3.523.0
14:23:13.641 + @aws-sdk/client-ses 3.523.0
14:23:13.641 + @aws-sdk/lib-storage 3.523.0
14:23:13.641 + @babel/core 7.28.5
14:23:13.641 + @babel/preset-react 7.27.1
14:23:13.641 + @changesets/cli 2.26.2
14:23:13.641 + @commitlint/cli 18.2.0
14:23:13.641 + @eslint/compat 1.4.0
14:23:13.641 + @eslint/eslintrc 2.1.4
14:23:13.641 + @eslint/js 9.36.0
14:23:13.641 + @faker-js/faker 8.4.1
14:23:13.641 + @ianvs/prettier-plugin-sort-imports 4.7.0
14:23:13.641 + @minify-html/node 0.16.4
14:23:13.641 + @next/bundle-analyzer 15.4.5
14:23:13.641 + @next/eslint-plugin-next 15.5.4
14:23:13.641 + @playwright/test 1.55.1
14:23:13.642 + @swc-node/register 1.9.2
14:23:13.642 + @swc/cli 0.6.0
14:23:13.642 + @swc/core 1.5.29
14:23:13.642 + @tanstack/eslint-plugin-query 5.91.0
14:23:13.642 + @tanstack/react-query-devtools 5.90.2
14:23:13.642 + @testing-library/dom 10.4.0
14:23:13.642 + @testing-library/react 16.1.0
14:23:13.642 + @types/auth0-js 9.21.6
14:23:13.642 + @types/babel__traverse 7.28.0
14:23:13.642 + @types/google-map-react 2.1.10
14:23:13.642 + @types/jest 30.0.0
14:23:13.642 + @types/jsonwebtoken 9.0.10
14:23:13.642 + @types/lodash 4.17.20
14:23:13.642 + @types/mailcheck 1.1.37
14:23:13.642 + @types/mjml 4.7.4
14:23:13.642 + @types/node 20.19.9
14:23:13.642 + @types/react 19.2.2
14:23:13.642 + @types/react-dom 19.2.2
14:23:13.642 + @types/rss 0.0.32
14:23:13.642 + @types/uuid 9.0.8
14:23:13.642 + @vitejs/plugin-react 4.7.0
14:23:13.642 + @vitest/coverage-v8 3.2.4
14:23:13.642 + @vitest/ui 3.2.4
14:23:13.642 + ajv 8.17.1
14:23:13.642 + babel-jest 30.2.0
14:23:13.642 + chokidar-cli 3.0.0
14:23:13.642 + commitlint-config-jira 1.6.4
14:23:13.642 + commitlint-plugin-jira-rules 1.6.4
14:23:13.642 + cross-env 10.1.0
14:23:13.642 + dotenv 17.2.3
14:23:13.643 + dotenv-cli 10.0.0
14:23:13.643 + env-cmd 11.0.0
14:23:13.643 + eslint 9.36.0
14:23:13.643 + eslint-config-next 15.5.4
14:23:13.643 + eslint-config-prettier 10.1.8
14:23:13.643 + eslint-plugin-import 2.31.0
14:23:13.643 + eslint-plugin-jsx-a11y 6.10.1
14:23:13.643 + eslint-plugin-playwright 1.8.3
14:23:13.643 + eslint-plugin-react 7.35.0
14:23:13.643 + eslint-plugin-react-hooks 5.0.0
14:23:13.643 + eslint-plugin-unused-imports 4.2.0
14:23:13.643 + handlebars 4.7.8
14:23:13.643 + handlebars-loader 1.7.3
14:23:13.643 + husky 9.1.7
14:23:13.643 + jest 30.2.0
14:23:13.643 + jest-environment-jsdom 30.2.0
14:23:13.643 + jest-util 30.2.0
14:23:13.643 + jiti 2.4.2
14:23:13.643 + jsonc-eslint-parser 2.4.1
14:23:13.643 + lightningcss 1.30.2
14:23:13.643 + lint-staged 15.0.2
14:23:13.643 + lodash 4.17.21
14:23:13.643 + patch-package 8.0.1
14:23:13.643 + prettier 2.8.8
14:23:13.643 + rollup-plugin-visualizer 6.0.4
14:23:13.643 + rollup-preserve-directives 1.1.3
14:23:13.643 + sass <- sass-embedded 1.93.2
14:23:13.643 + sass-embedded 1.93.2
14:23:13.643 + simple-git 3.28.0
14:23:13.643 + stylelint 16.24.0
14:23:13.643 + stylelint-config-prettier-scss 1.0.0
14:23:13.644 + stylelint-config-standard 39.0.0
14:23:13.644 + stylelint-config-standard-scss 16.0.0
14:23:13.644 + stylelint-css-modules 1.2.2
14:23:13.644 + stylelint-value-no-unknown-custom-properties 6.0.1
14:23:13.644 + ts-jest 29.4.4
14:23:13.644 + ts-node 10.9.1
14:23:13.644 + turbo 2.5.8
14:23:13.644 + typescript 5.9.2
14:23:13.644 + typescript-eslint 8.45.0
14:23:13.644 + typescript-plugin-css-modules 5.0.2
14:23:13.644 + undici 7.16.0
14:23:13.644 + verdaccio 6.2.0
14:23:13.644 + vite 7.2.6
14:23:13.645 + vite-plugin-dts 4.5.4
14:23:13.645 + vitest 3.2.4
14:23:13.645
14:23:13.785 . postinstall$ husky install
14:23:13.853 . postinstall: husky - install command is DEPRECATED
14:23:13.861 . postinstall: Done
14:23:14.068 Done in 36.2s using pnpm v10.17.1
14:23:14.247
14:23:14.247 Attention:
14:23:14.247 Turborepo now collects completely anonymous telemetry regarding usage.
14:23:14.247 This information is used to shape the Turborepo roadmap and prioritize features.
14:23:14.247 You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
14:23:43.813 portal-client-new:build: cache bypass, force executing 391f9c17af5edbee
14:23:44.106 portal-client-new:build:
14:23:44.106 portal-client-new:build: > @ build /vercel/path0/apps/portal-client
14:23:44.106 portal-client-new:build: > vite build
14:23:44.106 portal-client-new:build:
14:23:45.169 portal-client-new:build: [dotenv@17.2.3] injecting env (0) from ../../.env -- tip: 🔐 prevent building .env in docker: https://dotenvx.com/prebuild
14:23:45.213 portal-client-new:build: [info] [nitro:vercel] Using `nodejs22.x` runtime.
14:23:45.213 portal-client-new:build: [info] [nitro:vercel] Using `web` entry format.
14:25:38.917 portal-client-new:build: e[32m✓ built in 46.85se[39m
14:25:38.918 portal-client-new:build: [info] Generated .vercel/output/nitro.json
14:25:38.918 portal-client-new:build: [success] [nitro] You can deploy this build using `npx vercel deploy --prebuilt`
14:25:39.339
14:25:39.339 Tasks: 7 successful, 7 total
14:25:39.339 Cached: 0 cached, 7 total
14:25:39.339 Time: 2m9.547s
14:25:39.339 Summary: /vercel/path0/.turbo/runs/36Z3bkETovwbtkIjapUkGEmIOm7.json
14:25:39.339
14:25:39.350 WARNING no output files found for task build. Please check your `outputs` key in `turbo.json`
14:25:42.343 Build Completed in /vercel/output [3m]
14:25:43.356 Deploying outputs...
14:26:16.512 ▲ Build system report
14:26:16.512 • No memory or disk space problems detected
14:26:16.512 • Folder sizes on disk:
14:26:16.512 ‣ Input source code: 165 MB
14:26:16.512 ‣ Build cache: <1 MB
14:26:16.512 ‣ Output files: 118 MB
14:26:16.512 ‣ Node modules: 4232 MB
14:26:16.512 • No files larger than 100 MB detected on disk
14:26:16.858 Deployment completed
14:26:17.410 Creating build cache...
14:28:16.440 Created build cache: 1:59.030 (m:ss.mmm)
14:28:16.441 Uploading build cache [1.14 GB]
14:28:31.510 Build cache uploaded: 15.069s
Deployment output visible on Vercel:



