Diagnose and resolve the most common Vercel errors across three layers: build pipeline, serverless function runtime, and edge network. Each error includes the error code, root cause, and step-by-step fix.
vercel logs <url>)# Check deployment status and error details
vercel inspect <deployment-url>
# View function runtime logs
vercel logs <deployment-url> --follow
# View build logs via API
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \
"https://api.vercel.com/v13/deployments/dpl_xxx" | jq '.state, .errorMessage'
Three error layers:
vercel deploy, exit codes in build logBUILD_FAILED — Build command exited with non-zero code
Error: Command "npm run build" exited with 1
vercel.json → buildCommand matches your build scriptpackage.json (not just devDependencies for runtime deps)npm run build locally to reproduceMISSING_BUILD_SCRIPT — No build command found
Error: Missing Build Command
"build" to package.json scripts or set buildCommand in vercel.jsonbuildCommand to empty string or "true"
FUNCTION_PAYLOAD_TOO_LARGE — Serverless function bundle > 250 MB
Error: The Serverless Function "api/heavy" is 267 MB which exceeds the maximum size of 250 MB
.vercelignore, use dynamic imports, split into smaller functions@vercel/nft trace output to see what is being bundledFUNCTION_INVOCATION_FAILED — Unhandled exception in function
# View the actual error
vercel logs <deployment-url> --output=short
FUNCTION_INVOCATION_TIMEOUT — Function exceeded max duration
Error: Task timed out after 10.00 seconds
{
"functions": {
"api/slow-endpoint.ts": {
"maxDuration": 60
}
}
}
NO_RESPONSE_FROM_FUNCTION — Function didn't return a response
res.send(), res.json(), or return a ResponseFUNCTION_THROTTLED — Too many concurrent function invocations
404 NOT_FOUND
api/ or pages/api/ directoryoutputDirectory in vercel.json, verify build output contains the filevercel inspect <url> to see the deployment file listing504 GATEWAY_TIMEOUT
maxDuration or optimize function413 REQUEST_ENTITY_TOO_LARGE
DEPLOYMENT_NOT_FOUND
vercel ls
ReferenceError: process is not defined (Edge Runtime)
process.env in an edge functionEnv var undefined in production but works in preview
# Check which environments have the variable
vercel env ls | grep DATABASE_URL
Error occurred
├── During build? → Check build logs, run `npm run build` locally
├── During function invocation? → Check function logs with `vercel logs`
├── HTTP 404? → Verify file exists in deployment: `vercel inspect`
├── HTTP 500? → Unhandled exception in function code
├── HTTP 504? → Function timeout — increase maxDuration
└── HTTP 429? → Rate limited — implement retry with backoff
| Error Code | HTTP | Layer | Quick Fix |
|---|---|---|---|
BUILD_FAILED |
— | Build | Run build locally, check deps |
FUNCTION_INVOCATION_FAILED |
500 | Runtime | Check env vars, add try/catch |
FUNCTION_INVOCATION_TIMEOUT |
504 | Runtime | Increase maxDuration in vercel.json |
FUNCTION_THROTTLED |
429 | Runtime | Reduce concurrency or upgrade plan |
FUNCTION_PAYLOAD_TOO_LARGE |
413 | Build | Reduce bundle size |
NOT_FOUND |
404 | Edge | Verify file paths and routes |
EDGE_FUNCTION_INVOCATION_FAILED |
500 | Edge | Remove Node.js APIs from edge code |
NO_RESPONSE_FROM_FUNCTION |
502 | Runtime | Return response from all code paths |
For detailed debug bundles, see vercel-debug-bundle.