This is usually tied to the exact author on the commit Vercel is deploying, not just the email on your GitHub profile.
Check the commit that failed:
git log -1 --format=‘%an <%ae>’
Then compare that email to the email GitHub shows for that commit on github.com. If the commit uses an old email, a private noreply email that is not tied to your account, or a bot author, Vercel can treat it as an outside collaborator on Hobby.
The fix is usually to set git author email locally, make a new commit, and push that:
If you use GitHub private email, use the full noreply address from GitHub settings, not a guessed one. The CLI deploy working makes sense because that path does not rely on GitHub commit author association the same way.
For Hobby projects connected to a private GitHub repo, Vercel needs to verify that the commit author is the Hobby team owner. So I’d check the actual commit author, not only the email on your GitHub/Vercel profile.
Run this on the commit that failed:
git log -1 --format="%an <%ae>"
Then open that commit on GitHub and confirm GitHub associates it with your GitHub user. If GitHub shows it as unverified, unknown, a bot, or a different account, Vercel may treat it like an outside collaborator even if you are the only person using the repo.
If the email is wrong, set it locally and push a fresh commit:
If you use GitHub’s private email setting, use the exact ...@users.noreply.github.com address shown in GitHub email settings, not a guessed one.
Also check:
Vercel Account Settings → Authentication → GitHub connected
Vercel Account Settings → Emails → commit email added/verified if needed
GitHub repo → the commit is attributed to your GitHub user
Vercel’s collaboration troubleshooting page explains the Hobby behavior here:
The reason vercel --prod can still work is that CLI deploys are authenticated as your Vercel account directly, while GitHub auto-deploys have to verify the Git commit author.