Troubleshooting
What to do when a deployment fails, a site doesn't load, or a domain won't verify. Your previous version always stays online.
Start here
A failed deployment never takes your site down: the version that was live stays live until a new one has built, started and passed its health check.
To see what happened, open the website, expand Developer settings, and look at Deployments. Click a deployment to read its Deployment logs: each step (downloading, detecting, building, starting, health check) is listed, and the last line says where it stopped.
A deployment failed
| The log says | What it means and what to do |
|---|---|
| The Project detected card lists a problem | Something must change before the project can be built: the card says what (for example a missing build script, or a SvelteKit adapter that can't build here). Fix it, or set the command on the card, and analyze again. |
| Build failed | Installing dependencies or running your build command failed. Run the same commands on your computer (usually npm install and npm run build), fix the first error, and deploy again. |
| Application failed to start | The build worked but your app stopped straight away: often a missing environment variable, or a start command that points at the wrong file. |
| Health check failed | Your app started, but didn't answer on its home page within about 30 seconds. See below. |
| A message about your storage limit | The new version would take your account past its storage allowance. Your site stays online; see Storage and bandwidth. |
Fixing a failed health check
After starting your app, ProHostiva requests its home page (/). The deployment only goes live if that returns a normal page (an HTTP 2xx response with some content) within about 30 seconds. Common causes:
- The app listens on the wrong port. Use the
PORTenvironment variable ProHostiva sets, for exampleapp.listen(process.env.PORT), instead of a fixed number. - The home page redirects or needs a login (for example to
/login, or returns 401/404). Make/answer with a page. - A setting is missing, so the app crashes on its first request: add the environment variables it needs and deploy again.
- Django: add your ProHostiva address and domains to
ALLOWED_HOSTS. Laravel: setAPP_KEY. Rails: setSECRET_KEY_BASEorRAILS_MASTER_KEY.
Other common build problems
- It builds on my computer but not here: commit your lockfile (
package-lock.json,pnpm-lock.yaml…) so the same versions are installed, and check the Node or Python version your project asks for (see Runtime versions). - "We couldn't find a website or app here": your project is probably inside a subfolder. The ZIP or repository must have the project at its top level.
- The build takes too long: builds are stopped after 10 minutes. Very large dependencies are the usual reason.
For developers
Deployment logs show our own summary of each step rather than raw build output, so that nothing from inside the build (or our infrastructure) leaks into the dashboard. To see the full compiler or bundler error, run the build locally, or run the free readiness check, whose report includes the last lines of the build output.
The site is live but doesn't look right
- A blank page (React, Vue, Svelte): usually a missing
VITE_environment variable, such as your Supabase URL. Add it and deploy again: these variables are built into the page, so a new deployment is needed. - Changed an environment variable, but nothing changed? Environment variables are applied when you deploy. Deploy again after changing them.
- Old version still showing: check that the latest deployment finished with Deployment successful, then reload without the cache (Ctrl+Shift+R, or Cmd+Shift+R on a Mac).
Domains and HTTPS
- Verification fails: new records can take from a few minutes up to 48 hours. Check the name field (
_prohostiva, not the full domain, with most providers) and try Verify DNS again later. - Using Cloudflare: the record must be DNS only (grey cloud), not Proxied.
- Some visitors see an old site: remove any other A or AAAA records for the same name.
- HTTPS warning on the first visit: the certificate is issued right after verification and can take a minute or two. If it persists, email us.
The full walkthrough is in Connecting your own domain.
Account and payment
- The dashboard shows "Verify your email": click the link in the email we sent (check spam), or resend it from that screen.
- "Complete your payment": your plan activates once the payment goes through; this screen updates on its own.
- New deployments are refused but the site is online: you're over your plan's storage or bandwidth. See Storage and bandwidth.