Short answer
Send people the production domain, or a Shareable Link for the preview deployment. For tools such as tests or webhooks, use Protection Bypass for Automation with its secret in a header. Turning protection off makes every existing deployment public, so we keep it on.
Why Vercel asks for a login, and the fix
01
Vercel Authentication protects the preview
“Users attempting to access the deployment will encounter a Vercel login redirect.” Vercel, Vercel Authentication
Only people with access to the project get through. For a client or tester without a Vercel account, share a Shareable Link for the deployment instead of the plain URL.
02
You shared a generated URL, not the production domain
“Standard Protection is the recommended option for most projects. It protects all domains except production domains.” Vercel, Deployment Protection
Standard Protection covers every URL except production domains, so a my-project-1234.vercel.app address can be protected while your own domain is public. Share the production domain for anything a customer should see.
03
A webhook or test hits a protected URL
“Using a header is the recommended approach for most automation tools:” Vercel, Protection Bypass for Automation
Stripe, Slack or a test run can’t log in. Create a Protection Bypass for Automation secret in the project settings and send it in the x-vercel-protection-bypass header, or as a query parameter where a service can’t set headers.
x-vercel-protection-bypass: your-generated-secret04
The app fetches its own VERCEL_URL
“For client-side requests, use relative paths in the fetch call to target the current domain.” Vercel, Deployment Protection
Server code that calls the app through VERCEL_URL gets the login page back once protection covers that URL. Use relative paths in the browser, and the incoming request’s origin and cookies on the server.
// Before fetch(`${process.env.VERCEL_URL}/some/path`); // After fetch('/some/path');
Checked against the vendor’s docs on : Vercel docs: Deployment Protection; Vercel docs: Vercel Authentication; Vercel docs: Protection Bypass for Automation.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way.See scope and start
Related: Stripe webhook signature failed · Vercel environment variables undefined · Vercel 404: NOT_FOUND · Vercel deployment blocked: commit author