DocumentationMumbai

Error Codes Reference

When something goes wrong, Exovon should return clear, actionable error codes. No vague "something broke" messages. Every error tells you exactly what happened and how to fix it.

HTTP Status Codes

CodeMeaningWhen It HappensHow to Fix
200OKRequest successful.Nothing — you're good.
400Bad RequestMissing or invalid parameters.Check your request body and query parameters. Ensure all required fields are present and correctly formatted.
401UnauthorizedAuthentication failure.Verify your API token. Check if it has expired or been revoked. Generate a new token from your dashboard if needed.
403ForbiddenAccess denied, quota exhausted, or reused grant.Your plan limit may be reached, or you're trying to reuse an already-consumed grant code. Check your Limits & Quotas or generate a fresh grant.
413Payload Too LargeRequest body exceeds your plan's payload limit.Reduce request size. Limits: Free 3MB, Starter 4MB, Pro 6.5MB (Vercel + 2MB), Heavy 20MB. Use multipart uploads or split the payload.
429Too Many RequestsConcurrent request limit or rate limit exceeded.Slow down. Check the Retry-After header for when to retry. Consider upgrading your plan or implementing exponential backoff.
499Client Closed RequestThe client disconnected before the server could respond.Check your client-side timeout settings. If this happens frequently, your request may be taking too long — optimize or upgrade for higher timeout limits.
500Internal Server ErrorUnhandled backend failure.This is on us. Check our status page and retry. If it persists, contact support.
504Gateway TimeoutRequest execution exceeded container timeout.Optimize your code to run faster. Limits: Free 10s, Starter 30s, Pro 60s, Heavy 120s. For long-running tasks, use background jobs or serverless cron.

Deploy & Build Errors

CodeMeaningWhen It HappensHow to Fix
BUILD_TIMEOUTBuild exceeded time limit.Your build took longer than your plan allows.Optimize your build: cache dependencies, remove unused packages, or upgrade your plan. Limits: Free 5min, Starter 15min, Pro 30min, Heavy 60min.
BUILD_FAILEDBuild script returned non-zero exit code.npm run build failed.Check build logs in your dashboard. Common causes: missing env vars, TypeScript errors, or missing dependencies.
MEMORY_LIMITContainer exceeded RAM during build or runtime.Free: 512MB / Starter (₹349): 1GB / Pro (₹1,499): 1GB / Heavy: Custom.Optimize memory usage or upgrade your plan tier. Heavy plans get custom RAM allocation.
STARTUP_FAILEDApp crashed on container boot.Your app exited immediately after starting.Check that your start script is correct. Ensure your app listens on the port provided by the PORT env var.
INVALID_FRAMEWORKUnsupported framework detected.Your package.json doesn't match supported frameworks.We support Next.js, React, Vue, Svelte, Nuxt, and Node.js. Ensure your framework is listed or use a custom config.
GITHUB_AUTHCould not access repository.GitHub token expired or repo permissions changed.Re-authenticate your GitHub integration in the dashboard. Ensure the Exovon app has access to the repo.
DEPLOY_RATE_LIMITToo many deploys in your billing cycle.Free: 3 builds/mo exceeded. Starter: 150 mins/mo exceeded. Pro: 200 mins/mo exceeded.Wait for the next billing cycle, upgrade your plan, or contact support for high-frequency CI/CD requirements.

Database Errors

CodeMeaningWhen It HappensHow to Fix
DB_CONNECTION_LIMITMax database connections reached.Standard hosting tiers provide frontend edge hosting. ExoStore PostgreSQL requires database provisioning. Heavy / Dedicated: 500+ connections.Use connection pooling (PgBouncer) or the connectionless HTTP driver (@neondatabase/serverless). Upgrade for higher concurrency.
DB_TIMEOUTQuery or connection exceeded 30 seconds.Connection idle timeout or slow query.Optimize your query. Add indexes. For long-running analytics, use a separate read replica or background job.
DB_STORAGE_FULLDatabase storage limit reached.ExoStore PostgreSQL dedicated cluster storage limit reached.Free up space (drop old data, vacuum), or scale your dedicated database cluster storage.

Quota & Limit Errors

CodeMeaningWhen It HappensHow to Fix
BANDWIDTH_EXHAUSTEDMonthly origin bandwidth limit reached.Free: 1GB. Starter (₹349): 10GB. Pro (₹1,499): 40GB. Heavy: 1,000GB (1TB).Your site is throttled but still live. Purchase a Booster Pack (₹199/50GB) or upgrade your plan.
STORAGE_EXHAUSTEDDeployment or persistent storage limit reached.Free: 100MB. Starter (₹349): 5GB. Pro (₹1,499): 25GB. Heavy: 100GB+.Delete unused deployments/assets or upgrade your plan tier.
CUSTOM_DOMAIN_LIMITMax custom domains reached.Free: 0 (.exovon.co.in subdomain only). Starter (₹349): 5. Pro (₹1,499): Unlimited. Heavy: Unlimited (fair use).Remove unused domains or upgrade. Heavy plans have unlimited domains.
PROJECT_LIMITMax active projects reached.Free: 1. Starter (₹349): 5. Pro (₹1,499): 10. Heavy: Unlimited.Archive old projects or upgrade. Heavy plans allow unlimited active projects.

Authentication & Token Errors

CodeMeaningWhen It HappensHow to Fix
MISSING_TOKENNo API token provided.Request sent without Authorization header.Include Authorization: Bearer <your-token> in all API requests.
EXPIRED_TOKENAPI token has expired.Token past its expiry date.Generate a new token from your dashboard.
REVOKED_TOKENAPI token was manually revoked.The API token was manually revoked.Generate a new token and update your code.
INSUFFICIENT_SCOPEToken lacks permission for this action.Token was created with limited scopes.Re-create the token with the required scopes (e.g., deploy:write, project:read).
REUSED_GRANTOAuth grant code already consumed.Grant code used twice.Grant codes are single-use. Initiate a fresh OAuth flow.

Error Response Format

Every error response follows this JSON structure:

{
  "error": {
    "code": "BUILD_TIMEOUT",
    "message": "Build exceeded the 30-minute timeout for your Pro plan.",
    "details": {
      "plan": "Pro",
      "limit": "30 minutes",
      "actual": "32 minutes 14 seconds",
      "docs_url": "https://exovon.in/docs/errors/BUILD_TIMEOUT"
    },
    "request_id": "req_8f3a9b2c1d4e",
    "timestamp": "2026-08-09T00:29:00Z"
  }
}
ℹ️

Always include the request_id when contacting support. It lets us trace exactly what happened.

Quick Fixes by Symptom

SymptomLikely CauseQuick Fix
Site loads slowlyBandwidth throttledCheck dashboard usage. Buy Booster Pack or upgrade.
Deploy button greyed outDeploy limit reachedWait for next cycle or upgrade plan.
Database connection errorsConnection pool exhaustedUse PgBouncer. Close idle connections. Upgrade plan.
504 on every requestCode too slowProfile your code. Move heavy work to background jobs.
401 after working beforeToken expiredRegenerate token in dashboard.
429 constantlyNo rate limiting in your codeImplement exponential backoff. Check Retry-After header.