Vercel deploy hook creates job but deployment never appears or executes

Project: clientdining-v1 (prj_iCWwDrvZcgZqk41hcnCOTH4o6CAT)

Issue: When I trigger my Deploy Hook, I get a successful 201 response with a job ID in PENDING state, but:

  1. No deployment appears in the Deployments UI
  2. The site doesn’t update with new code
  3. This happens both via GitHub webhook and manual URL trigger

Deploy Hook URL: https://api.vercel.com/v1/integrations/deploy/prj_iCWwDrvZcgZqk41hcnCOTH4o6CAT/em9GRyROK5

Example response:

{“job”:{“id”:“mA0ORkK8IgBb3b6j3wFH”,“state”:“PENDING”,“createdAt”:1769166753635}}

The only way I can deploy is by manually clicking “Redeploy” in the UI, but this doesn’t pull latest commits from GitHub.

Any help appreciated!

To assist you better, could you please provide the deployment/build logs as well as your configuration files (next.config.js and vercel.json)? This information will help us pinpoint the issue more effectively. Happy to help!

Facing the same issue. Receive a response from api akin to above:

{“job”:{“id”:“mA0ORkK8IgBb3b6j3wFH”,“state”:“PENDING”,“createdAt”:1769166753635}}

But deploy never actually gets created/triggered

I’m seeing the same issue on my project.

Project:
v0-scan-lynk-healthcare-website

Repository:
MahirAltib/scanlynk

Issue:

  • GitHub pushes to main are not creating deployments

  • Deploy hooks return pending job IDs, but no deployment appears in the Deployments list

  • Production remains stuck on an older commit

Deploy hook responses:

  • {“job”:{“id”:“ZVe8VeTxIv00cSQkGseX”,“state”:“PENDING”,“createdAt”:1778724399406}}

  • {“job”:{“id”:“vYzSwc87LGea8AesiYos”,“state”:“PENDING”,“createdAt”:1778725187745}}

Current state:

  • latest live production is stuck on commit 573cc39

  • latest GitHub main is at commit 60a2dcb

What I already tried:

  • verified the GitHub repo connection in Vercel

  • disconnected and reconnected the repository

  • created and triggered a new deploy hook manually

  • confirmed the latest commits exist on GitHub main

Like the original post, the only visible production deployment remains the older one, and new pushes/hooks do not create new deployments.

We ran into the same issue on our project:

  • GitHub pushes stopped creating deployments

  • Deploy Hooks returned 201 responses with job IDs in PENDING state

  • No deployment ever appeared in the Vercel Deployments UI

  • Disconnecting/reconnecting GitHub and recreating deploy hooks did not resolve it

What ultimately worked for us was bypassing Deploy Hooks entirely and creating a deployment through the Vercel Deployments API.

Example:

curl -X POST "https://api.vercel.com/v13/deployments?teamId=YOUR_TEAM_ID" \
  -H "Authorization: Bearer YOUR_VERCEL_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "YOUR_PROJECT_NAME",
    "target": "production",
    "gitSource": {
      "type": "github",
      "repoId": "YOUR_REPO_ID",
      "ref": "main"
    }
  }'

In our case, this successfully created a new deployment from the latest commit, even though Deploy Hooks and GitHub-triggered deployments remained stuck in PENDING.

This suggests the issue may be occurring somewhere in the Deploy Hook / Git integration queue rather than in the actual deployment service itself.

If anyone from Vercel is investigating, it may be useful to compare:

  • A project where Deploy Hooks remain indefinitely in PENDING

  • The same project deploying successfully via the /v13/deployments API endpoint

Hopefully this helps others who are blocked while waiting for a platform-side fix.

Hi Johnny / everyone here,

First thing I’d do is revoke the deploy hook that was posted publicly and create a new one. Deploy hook URLs can trigger deployments, so they should be treated like a secret.

For the stuck PENDING job case, I’d check a few things in this order:

# use the new hook URL, not the one posted here
curl -i -X POST "https://api.vercel.com/v1/integrations/deploy/..."

If that returns 201 but no deployment appears, check whether the project has this in vercel.json:

{
  "github": {
    "enabled": false
  }
}

Vercel’s deploy hook docs mention that deploy hooks will not trigger if github.enabled = false is present, which would match the “accepted job, but no deployment” behavior pretty closely.

I’d also confirm the hook was created for the same branch you expect to deploy, usually main, and that the project is still connected to the Git repo in the same Vercel team/account where the hook was created.

If all of that looks correct and a direct Deployments API call works while deploy hooks and Git pushes do not, that points more toward the Git/deploy-hook queue path than your build itself. In that case, the most useful non-sensitive details to add would be:

- whether github.enabled is set in vercel.json
- branch selected in the deploy hook
- whether a normal push to that branch creates any deployment entry
- the 201 response body with project IDs / hook tokens removed