Is Vercel Down? How to Check and What to Do

by API Status Check

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

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 --noEmit by 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_modules or 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/image returns 500 or blurry/broken images
  • Common cause: Source image URL unreachable from Vercel's servers, or image exceeds 50MB limit
  • Fix: Verify the remotePatterns in next.config.js and 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

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.

  1. DNS failover: If you have a backup hosting provider, update your DNS to point there
  2. Cloudflare in front: If Cloudflare proxies your traffic, cached content may still serve
  3. 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.

  1. Graceful degradation: Show cached/static content with a banner: "Some features temporarily unavailable"
  2. 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.

  1. Don't panic: Production continues running on the last successful deployment
  2. Queue your changes: Keep merging PRs to main — deployments will auto-trigger when builds recover
  3. 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 →