Hi Vercel team,
My project’s main branch stopped triggering deployments on Git push around July 12, while pushes to other branches (v2-development, wt2/scratch) continue to create deployments normally.
- Project: ensemble-manager (team: emsemble-manager-s-projects, Hobby plan)
- Repo: ensemblemanager/ensemble-manager (GitHub)
- Production branch: main (confirmed in Environments settings)
- Last main deployment from Git push: July 11 (~4:16 PM UTC, commit 6dd17a9)
- After that, commits pushed to main (bc8dcdb, 9fb72a5, 5b722d0) created NO deployment at all — not failed, not skipped, simply absent from the list
- Meanwhile v2-development / wt2/scratch pushes on July 12 all deployed fine
Already tried:
- Disconnect / reconnect the Git repository
- Uninstall / reinstall the Vercel GitHub App
- vercel.json has no git/deploymentEnabled/ignoreCommand settings (only regions + crons)
- Ignored Build Step is Automatic, Root Directory is ./
- Commit author email is consistent and verified
Vercel’s in-dashboard AI support confirmed from your deployment data that this “points to a webhook delivery or processing issue specific to the main branch” requiring backend investigation, but as a Hobby user I cannot open a support case.
Workarounds (Create Deployment with main / Deploy Hooks / manual redeploy) all work fine — only Git-push-triggered deployments for main are broken.
I’m preparing to launch a beta soon and would really appreciate a backend check on webhook event delivery for the main branch. Thank you!
Update — solved it myself. Root cause was NOT a webhook issue.
After introducing git worktrees, I started merging into main with git merge --ff-only. Since the branch was already pushed (and deployed as a Preview) before merging, the fast-forward made main’s tip point to a commit SHA that Vercel had already deployed. Vercel treats deployments per-commit-SHA, so a duplicate SHA produces no new deployment (not failed, not skipped — simply absent). That’s why only main was affected, why other branches deployed fine, and why an empty commit (a fresh SHA) deployed successfully.
Fix: merge into main with --no-ff so a new merge-commit SHA is always created, which triggers the deployment normally. No webhook/reconnect needed.
Final update — fully resolved. There were actually TWO separate causes:
-
The original “main not deploying” issue: I was merging worktree branches into main with git merge --ff-only. Since the branch was already pushed (and deployed as a Preview) before merging, the fast-forward made main’s tip a commit SHA that Vercel had already deployed. Vercel deduplicates per commit SHA, so no new deployment was created. Fix: merge with --no-ff so a fresh merge-commit SHA is always created. Confirmed working (empty commits and direct commits with new SHAs deployed fine).
-
A second, unrelated issue that appeared afterward: one later commit still wasn’t deploying even with a fresh SHA. Checking the GitHub commit status revealed the real reason — “Vercel — Deployment rate limited — retry in 24 hours”. I had simply exceeded the Hobby plan’s 100-deployments-per-day limit (code: api-deployments-free-per-day), largely because worktree parallel development multiplied my preview deployments. This resets after 24 hours.
So: not a webhook issue, not a GitHub App issue, and NOT caused by worktrees or merge commits themselves. Cause #1 was ff-only SHA duplication (fixed with --no-ff), cause #2 was the daily deployment rate limit. Lesson for anyone using AI agents / worktrees on Hobby: watch the 100/day deploy cap — limit Preview deployments to specific branches and group commits.
Thanks!