SolidStart "@solidjs/start" adapter not set for the target in CI
SolidStart builds through vinxi/Nitro and needs a server preset that matches where you deploy. With the wrong or default preset, CI produces an artifact the host cannot run (missing function entry, wrong output directory).
What this error means
The build succeeds but deployment fails, or vinxi warns about an unknown preset, because server.preset in app.config.ts does not match the target platform.
WARN Using default "node-server" preset for build.
Error: The Vercel build output was not found at .vercel/output.
No serverless function entry produced for this preset.Common causes
The default preset does not match the host
Without an explicit server.preset, SolidStart builds a node-server output that a serverless or edge host cannot deploy.
The preset name is wrong
A typo or an outdated preset id (vercel vs vercel-edge, netlify vs netlify-edge) produces the wrong output layout.
How to fix it
Set the server preset for your host
- Choose the Nitro preset matching the platform (node-server, vercel, netlify, cloudflare-pages).
- Set it in
app.config.tsunderserver.preset. - Re-run the build and confirm the expected output directory appears.
import { defineConfig } from '@solidjs/start/config';
export default defineConfig({
server: { preset: 'vercel' },
});Verify the output layout in CI
Assert the deploy artifact exists so a wrong preset fails the build, not the deploy.
- run: npm run build
- run: test -d .vercel/output || (echo "wrong preset" && exit 1)How to prevent it
- Pin
server.presetto your deploy target explicitly. - Keep the preset id current with the SolidStart/Nitro version.
- Assert the expected build output exists in CI.