Is Vercel Down? How to Check and What to Do
Is Vercel Down? How to Check and What to Do
Vercel hosts millions of websites and web applications, powering the deployments behind Next.js, Nuxt, SvelteKit, and countless other frontend frameworks. When Vercel goes down, it's not just your dashboard that's affected — your production sites, serverless APIs, and edge functions all go with it.
With 390+ monthly searches for "is Vercel down," developers regularly scramble to figure out whether it's their deployment or the platform.
Here's how to tell and what to do about it.
How to Check if Vercel is Actually Down
Step 1: Check Official Status
Vercel Status Page: vercel-status.com
Vercel breaks down their infrastructure by component:
- Vercel Edge Network (CDN / static serving)
- Serverless Functions (API routes, SSR)
- Edge Functions (edge middleware, edge routes)
- Builds & Deployments (CI/CD pipeline)
- Dashboard (management console)
- DNS (domain resolution)
- Vercel Blob / KV / Postgres (data stores)
- Analytics & Speed Insights
- Image Optimization
⚠️ Regional differences: Vercel's edge network spans 100+ locations globally. An issue in iad1 (US East) won't affect cdg1 (Europe). Check if the issue is regional or global.
Step 2: Check API Status Check
Real-time monitoring: apistatuscheck.com/api/vercel
Independent monitoring catches outages before Vercel's status page acknowledges them.
Step 3: Check Community Reports
- Twitter/X: Search "Vercel down" — devs are vocal
- GitHub: github.com/vercel/next.js/discussions — often the first place devs check
- Reddit: r/nextjs and r/vercel
- Vercel Community: vercel.community
Step 4: Test Your Deployment
# Check if your site is responding
curl -s -o /dev/null -w "%{http_code} %{time_total}s" https://your-site.vercel.app
# Check the Edge Network directly (bypass DNS cache)
curl -s -I https://your-site.vercel.app | grep -E "x-vercel|server|x-matched"
# Check serverless function health
curl -s -o /dev/null -w "%{http_code}" https://your-site.vercel.app/api/health
# Check a specific Vercel region
curl -s -H "x-vercel-debug-proxy-config: 1" https://your-site.vercel.app 2>&1 | grep region
# Test DNS resolution
dig your-domain.com +short
# Should return CNAME to cname.vercel-dns.com or A records to Vercel IPs
Common Vercel Issues (That Aren't Platform Outages)
Deployment Failures
The #1 Vercel complaint — and almost always your code, not Vercel.
Check build logs: Dashboard → Project → Deployments → click the failed one → Build Logs
Common build failures:
- TypeScript errors: Vercel enforces
tsc --noEmitby default. Fix your types. - Missing env vars: Production deployments use Production env vars, not Preview ones
- Memory exceeded: Free plan gets 1024MB build memory. Large
node_modulesor heavy builds can OOM. - Build timeout: Free: 45min, Pro: 45min. If your build is that slow, you have bigger problems.
# Reproduce Vercel build locally
npx vercel build
# Or specifically for Next.js:
next build
Serverless Function Timeouts (504 Errors)
- Free/Hobby: 10 second max execution
- Pro: 60 second max (300s with streaming)
- Enterprise: 900 seconds
Symptom: API route returns 504 Gateway Timeout
Fixes:
// 1. Set the maxDuration in your route
export const maxDuration = 60; // Pro plan: up to 60 seconds
// 2. For long tasks, use background functions or streaming
export async function GET(req) {
const encoder = new TextEncoder();
const stream = new ReadableStream({
async start(controller) {
// Stream progress updates to keep connection alive
controller.enqueue(encoder.encode('Processing...\n'));
const result = await longRunningTask();
controller.enqueue(encoder.encode(JSON.stringify(result)));
controller.close();
},
});
return new Response(stream);
}
Edge Function Errors
- Size limit: 1MB for edge functions (after bundling)
- No Node.js APIs: Edge runtime doesn't support
fs,path,crypto(Node versions) — use Web APIs - Cold starts: Minimal on edge (1-5ms), but initial deployment can take a few seconds
Domain and DNS Issues
- "Domain not found": DNS propagation takes up to 48 hours after adding a domain
- SSL certificate pending: Vercel auto-provisions Let's Encrypt certs, but it needs DNS to resolve first
- CNAME conflict: Can't use CNAME at the apex domain with some registrars — use Vercel's nameservers instead
Image Optimization Failures
- Symptom:
/_next/imagereturns 500 or blurry/broken images - Common cause: Source image URL unreachable from Vercel's servers, or image exceeds 50MB limit
- Fix: Verify the
remotePatternsinnext.config.jsand that the source is accessible
Cold Starts on Serverless Functions
- Symptom: First request after idle period takes 2-10 seconds
- Not an outage: This is how serverless works
- Mitigations:
- Use Edge Runtime for latency-sensitive routes (
export const runtime = 'edge') - Vercel Pro includes "Always On" for critical functions
- Cron job to keep functions warm
- Use Edge Runtime for latency-sensitive routes (
What to Do When Vercel is Actually Down
Static Sites: You're Probably Fine
Vercel's edge network caches static assets aggressively. If your site is mostly static (SSG/ISR):
- Already-cached pages continue serving from edge nodes even during partial outages
- New deployments will fail, but existing content stays up
- Only dynamic routes (SSR/API) are affected by serverless outages
Edge Network is Down
This is the worst case — your site is completely unreachable.
- DNS failover: If you have a backup hosting provider, update your DNS to point there
- Cloudflare in front: If Cloudflare proxies your traffic, cached content may still serve
- Custom domain vs .vercel.app: Both go through the same edge network, so no advantage either way
Serverless Functions are Down (but Edge Network works)
Static content serves, but API routes and SSR pages fail.
- Graceful degradation: Show cached/static content with a banner: "Some features temporarily unavailable"
- Client-side fallback: If your API is down, fall back to cached data in the browser
// Next.js: Graceful API fallback
export async function getServerSideProps() {
try {
const data = await fetchFromAPI();
return { props: { data, stale: false } };
} catch (error) {
// Return stale data or empty state instead of crashing
return { props: { data: null, stale: true } };
}
}
// Client component
function Page({ data, stale }) {
return (
<>
{stale && (
<div className="bg-yellow-50 p-3 text-center">
⚠️ Showing cached data. Live updates temporarily unavailable.
</div>
)}
<Content data={data} />
</>
);
}
Builds and Deployments are Down
Your live site is fine, but you can't deploy updates.
- Don't panic: Production continues running on the last successful deployment
- Queue your changes: Keep merging PRs to main — deployments will auto-trigger when builds recover
- Alternative deploy: If urgent, build locally and deploy via CLI:
# Build and deploy from your machine
npx vercel --prod
# This uses Vercel's build infrastructure too, but sometimes CLI deploys work when dashboard doesn't
Dashboard is Down
- Your sites still work: Dashboard availability is independent of the serving infrastructure
- Use the CLI:
npx vercel ls,npx vercel env ls,npx vercel logs - Check deployments:
npx vercel inspect <deployment-url>
Building Vercel Resilience
ISR (Incremental Static Regeneration)
ISR is your best friend for availability:
- Pages are pre-rendered and cached at the edge
- Stale pages serve even if the origin is unreachable (
stale-while-revalidate) - Set appropriate revalidation times based on content freshness needs
// This page survives serverless outages — cached at the edge
export async function generateStaticParams() {
const posts = await getAllPosts();
return posts.map(post => ({ slug: post.slug }));
}
export const revalidate = 3600; // Revalidate every hour
// During an outage, the last cached version serves indefinitely
Multi-Platform Deployment
Don't be single-platform dependent for critical sites:
| Primary | Backup | Switch Method |
|---|---|---|
| Vercel | Cloudflare Pages | DNS failover |
| Vercel | Netlify | DNS failover |
| Vercel | AWS Amplify | Route 53 health checks |
Health Check Endpoint
// app/api/health/route.ts
import { NextResponse } from 'next/server';
export const runtime = 'edge'; // Use edge for fastest response
export async function GET() {
const checks = {
status: 'ok',
timestamp: new Date().toISOString(),
region: process.env.VERCEL_REGION || 'unknown',
deployment: process.env.VERCEL_URL || 'unknown',
git: process.env.VERCEL_GIT_COMMIT_SHA?.slice(0, 7) || 'unknown',
};
// Optional: Check your database
try {
// await db.query('SELECT 1');
checks.database = 'ok';
} catch {
checks.database = 'error';
checks.status = 'degraded';
}
return NextResponse.json(checks, {
status: checks.status === 'ok' ? 200 : 503,
});
}
Edge Config for Feature Flags
Use Vercel Edge Config to disable broken features without redeploying:
import { get } from '@vercel/edge-config';
export default async function Page() {
const maintenance = await get('maintenance_mode');
if (maintenance) {
return <MaintenanceBanner message={maintenance.message} />;
}
return <NormalContent />;
}
Notable Vercel Incidents
March 2024 — Edge Network Degradation
Multiple regions experienced elevated error rates for approximately 2 hours. Static sites were largely unaffected due to caching, but SSR and API routes saw increased 5xx errors.
Ongoing — Build Queue Delays
During peak hours, Vercel occasionally experiences build queue delays, especially for free-tier projects. Builds aren't failing — they're just queued longer than usual.
Vercel's Track Record
Generally excellent uptime for the serving infrastructure. Most issues affect builds/deployments rather than live sites. The edge network's distributed architecture means truly global outages are rare — most incidents are regional.
Vercel Alternatives
| Service | Best For | Framework Support | Pricing |
|---|---|---|---|
| Netlify | JAMstack, static sites | Broad (Next.js, Gatsby, etc.) | Free tier available |
| Cloudflare Pages | Edge-first, Workers | Growing (Next.js partial) | Generous free tier |
| AWS Amplify | AWS ecosystem | Broad | Pay-per-use |
| Railway | Full-stack apps | Any (Docker) | $5/mo + usage |
| Render | Simple deploys | Broad | Free tier available |
| Fly.io | Global edge, Docker | Any | Pay-per-use |
| Coolify | Self-hosted Vercel | Broad | Free (self-hosted) |
Closest drop-in for Next.js: Netlify — has the most mature Next.js adapter outside of Vercel. Some features (ISR, middleware) work differently, but most apps port cleanly.
Stay Updated
- Monitor Vercel status: apistatuscheck.com/api/vercel
- Subscribe to alerts: Get notified when Vercel has issues — crucial for production apps
- Vercel Status RSS: vercel-status.com → Subscribe
- @veraborncreative on Twitter: Vercel's incident communications
Last updated: February 2, 2026. We monitor Vercel and 50+ APIs 24/7 at API Status Check.
Monitor Your APIs
Check the real-time status of 100+ popular APIs used by developers.
View API Status →