Skip to content

Troubleshooting

Quick fixes for the issues we see most often. Each entry starts with the symptom you’re seeing, so scan the headings for yours. If none of these match, contact support from the dashboard and include your service name and what you tried.

Symptom: myapp.com loads fine, but www.myapp.com shows a security warning (“Your connection is not private”) or an error page.

Cause: The www variant of your domain isn’t set up. It needs its own DNS record and redirect.

Fix:

  1. Open your service → Domains tab
  2. On your domain’s card, make sure the www redirect toggle is on
  3. If ZevCloud manages your domain’s DNS, that’s it — it’s live within a minute
  4. If you manage DNS elsewhere, add the www record shown in the dashboard at your DNS provider, then wait for the deploy the toggle triggers

See Custom Domains → www Redirect for details.

”Your connection is not private” right after adding a domain

Section titled “”Your connection is not private” right after adding a domain”

Symptom: You just added a custom domain and the browser shows a certificate warning.

Cause: The SSL certificate is issued automatically after DNS verification, which takes a minute or two.

Fix: Wait 1-2 minutes and refresh. If it persists beyond ~10 minutes:

  • Confirm your DNS records match what the Domains tab shows (use the DNS button on the domain row)
  • If your DNS is on Cloudflare, make sure the record is “DNS Only” (gray cloud), not “Proxied”
Section titled “Pages 404 when refreshed or opened from a direct link”

Symptom: Your React/Vue app works when navigating from the home page, but refreshing on a route like /dashboard (or sharing that link) shows a 404.

Cause: Client-side routing needs the server to serve index.html for every route. Without that fallback, only / exists as a real file.

Fix: Open Service Settings → Build & Deploy, make sure Static site is on, then enable SPA (Single Page Application) and redeploy.

Vite / React deploy fails with a port or health check error

Section titled “Vite / React deploy fails with a port or health check error”

Symptom: The build succeeds but the deploy ends in “Failed”, often mentioning ports or health checks.

Cause: Client-rendered apps don’t run a server, so there’s nothing listening on a port for the platform to route to.

Fix: Enable Static site in Service Settings → Build & Deploy (or during creation). Your build output is then served directly as files — no port involved. See Static Sites & SPAs.

Symptom: The deploy shows as Ready, but visiting the site shows a blank page or a 404.

Cause: For static sites, the Publish Directory doesn’t match the folder your build actually produces.

Fix: Check your build tool’s output folder (Vite: dist, Create React App: build, Astro: dist) and set it as the Publish Directory in Service Settings → Build & Deploy, then redeploy.

Symptom: A push to your repository didn’t trigger a deployment.

Work through these in order:

  1. Branch — auto-deploy only fires for the branch configured on the service. Check Service Settings.
  2. Monorepo folder — if the service has a Root Directory set, pushes that don’t touch that folder don’t redeploy it. That’s by design.
  3. Open invoice — deploys are held while the service has an unpaid invoice. The Deployments tab shows a “Held” entry; settle the invoice and push again (or hit Deploy).
  4. Unrecognized committer — pushes from someone who isn’t a linked member of your team are queued as pending approval instead of deploying. Approve them from the Deployments tab.

The Free plan is greyed out when creating a service

Section titled “The Free plan is greyed out when creating a service”

Symptom: In the plan picker, the Free plan can’t be selected and a notice mentions a free tier limit.

Cause: Each team can run a limited number of free services at a time.

Fix: Upgrade one of your existing free services to a paid plan, or delete one you no longer use. The picker unlocks immediately.

Symptom: Code that sends mail via SMTP times out.

Cause: Direct SMTP ports are blocked platform-wide to prevent abuse.

Fix: Use your email provider’s HTTPS API instead (Resend, Mailgun, Postmark, SendGrid all offer one). HTTPS traffic is unrestricted. See outbound network restrictions.

Build output missing for an old deployment

Section titled “Build output missing for an old deployment”

Symptom: Opening an older deployment shows a note that its build output is no longer available.

Cause: Only recent build history is retained on the build infrastructure.

Fix: Trigger a new deploy — its output appears in full. The old deployment’s metadata (commit, status, timing) remains in the list.