Skip to main content
reliabilityengineering

What Happens When a Deploy Fails

The SrvBot team

On a lot of platforms, a failed deploy is the scariest moment you have — the build breaks and the site breaks with it, in public. On SrvBot it’s designed to be a non-event. Here’s exactly what happens when a build fails.

The build runs in isolation

When you push, your new version is fetched, its dependencies installed, and the project compiled and checked — all in a separate build step that no visitor traffic touches. Nothing about your live site changes while this runs.

Traffic only switches on success

This is the core of it: SrvBot only moves traffic to a new build after that build succeeds. If the build fails, traffic keeps flowing to the last working version. Your live site is unaffected — visitors never see the broken build, because it never went live.

You get the log, not a mystery

A failed deploy shows a clear failed status with the build log attached. Scroll to the first line marked ERROR, or to where the process exited, and that’s almost always the cause — a missing environment variable, a build-command mismatch, a failing test. The full guide to reading it is at /help/failed-deploy.

Rolling back is one action

If a deploy succeeds but causes a problem you only notice later, you don’t need to reconstruct anything. Open the deploy history, find the last known-good version, and redeploy it. SrvBot rebuilds from that exact commit and switches traffic back once it’s ready.

Why we built it this way

Most real-world downtime is self-inflicted — a bad deploy, not a data-center failure. The platform should make that failure mode safe by default, so shipping often doesn’t mean risking the site each time.

The bottom line

A build that fails should cost you a log to read, not an outage to explain. The recovery walkthrough lives at /help/failed-deploy, and you can try the deploy flow yourself from /get-started.