Fix · Deploy succeeded but production still serves the old site

Git push not triggering a deployment on Vercel or Netlify

You push to the production branch and the dashboard shows no new deployment. Either the link between the Git provider and the platform is broken, or a setting tells the platform to skip the build.

Likely causes, most common first

Cause 1 · in 1 of 5 matching cases

The Git connection or webhook is missing or broken

The platform needs an event from the Git provider for each push. On Netlify, a GitHub App installation creates outgoing webhooks as needed. On Vercel, the Git login connection under Account Settings > Authentication has to be configured, and linking a second Vercel account to the same Git account removes the link from the first. If the link is missing or permissions are insufficient, the push can fail to start a deployment with no visible error.

How to tell: The commit has no deployment in the dashboard, no Vercel Bot comment appears on it, and no skip setting explains why.

Cause 2

Builds or branch deploys are switched off

On Netlify, stopped builds prevent production deploys, Deploy Previews and branch deploys. Requests to build hook URLs do not build the site either. On Vercel, git.deploymentEnabled in vercel.json can turn off deployments for named branches or for all branches.

How to tell: Netlify shows Build status as Stopped builds, or vercel.json sets git.deploymentEnabled to false for your branch.

Cause 3

The platform skips or cancels the deployment for that commit

Vercel checks that the commit author has access to the project. It treats two addresses such as [email protected] and [email protected] as separate identities. An Ignored Build Step script that exits with 0 skips the build, which trips up people who expect 0 to mean success. If Require Verified Commits is enabled for a GitHub project, Vercel cancels the deployment for unverified commits.

How to tell: Other branches deploy but this one does not, the Vercel Bot comments with a request-access link, or the Ignored Build Step script exits with 0 for this commit.

Cause 4

Netlify builds the push but auto publishing is locked

A locked deploy pins the site to the latest published deploy. Netlify still builds new deploys but does not publish them to the main site. Production looks as if it ignored the push until you publish a finished deploy yourself.

How to tell: The Deploys list shows a finished build for your commit while the live site is unchanged.

Check and fix it, step by step

  1. Read the Vercel Bot comment, the Activity log and the commit author

    Open the commit on your Git provider and look for a Vercel Bot comment. Then read the Vercel Activity log for a failure reason. If there is no comment at all, validation probably failed before the Bot could respond, for example because of a malformed vercel.json or a missing Git integration. Compare the commit email with the one on your Git provider account.

    git config user.email

    Docs: vercel.com →

  2. Check the Netlify build status

    Go to Project configuration > Developer settings > Continuous deployment > Build settings and select Configure. If Build status is Stopped builds, toggle it to Active builds. Then push a new commit, because activating builds does not start one.

    Docs: docs.netlify.com →

  3. Look for a locked deploy on Netlify

    Open the Deploys list and check whether the deploy is locked. A locked site builds new deploys but does not publish them, so they wait until you publish one.

    Docs: docs.netlify.com →

  4. Check git.deploymentEnabled in vercel.json

    Look for the setting below, or a branch pattern set to false that matches your branch. If a branch matches several rules and at least one is true, a deployment is created.

    {
      "git": {
        "deploymentEnabled": false
      }
    }

    Docs: vercel.com →

  5. Test the Vercel Ignored Build Step script

    Open Project Settings > Git and find the Ignored Build Step. A return code of 0 skips the build, and 1 or greater runs it. Run the script locally and read the exit code. Paths in the script have to be relative to the Root Directory.

    ./ignore-build.sh; echo $?

    Docs: vercel.com →

  6. Restore the Git login connection on Vercel

    Go to Account Settings > Authentication and reconnect your Git provider. Signing in to GitHub again is separate from the connection stored in Vercel, so check the connection itself. Then push a new commit, since a commit SHA that was already deployed produces no new deployment.

    Docs: vercel.com →

  7. Relink the repository on Netlify

    Go to Project configuration > Developer settings > Continuous deployment > Repository, select Manage repository, then Link to a different repository and choose the same repository.

    Docs: docs.netlify.com →

Quick check: git config user.email; grep -n deploymentEnabled vercel.json

How often this shows up in our data

5 of the 937 verified cases from the last 12 months in our data match this symptom (0.5%). The most common cause was “The Git connection or webhook is missing or broken” (1 of 5); 4 didn't show which cause. How we collect and verify cases.

Questions

Why does a push to main not deploy when other branches do?

Check the production branch name in Project Settings > Git on Vercel, any branch rule under git.deploymentEnabled in vercel.json, and the Ignored Build Step, which skips the build when the script returns 0.


Why do Netlify build hooks fail to start a build?

If builds are stopped for the site, Netlify does not build it when a build hook URL receives a request. Set Build status to Active builds, then trigger the hook again.


Can two Vercel accounts use the same Git account?

No. Setting up the link on a second account removes it from the first, so commits can stop creating deployments on the first account.


Does Netlify build immediately after I activate builds?

No. Netlify does not immediately build your site when you activate builds, so push a new commit to start a deploy.


Sources

Every cause and step above was checked against these pages on 27 Oct 2026.

The broader pattern

This is one symptom of a wider failure pattern: Deploy succeeded but production still serves the old site. The guide covers every cause we see for it, on any stack.

Get a heads-up when Netlify or Vercel breaks something

NetlifyVercel

Leave your email and we'll let you know when something big changes for Netlify and Vercel. Unsubscribe any time by replying. Gemmein Limited. Research terms · Privacy

← All fixes