Platform Notes: June 2020

Deployment Changes

Starting June 19th, 2020, you can no longer create new ZEIT Now 1.0 Deployments, although existing ones remain available until August 7th, 2020. The deprecated x-vercel-trace header is gone, replaced by x-vercel-id. New Deployments now default to the vercel.app domain suffix rather than now.sh, and Gatsby sites get automatic caching headers for static assets.

Several routing fixes landed. Empty query string parameters in a redirect's destination no longer trigger a 500. Query string ordering is preserved when requests are piped through rewrites or routes to external services. The platform also renders clearer errors when routes is combined with the newer routing properties (cleanUrls, trailingSlash, rewrites, redirects), when a rewrite or redirect source contains an invalid regex, or when the destination includes a path segment the source doesn't. Requests carrying a Range header now respect the Edge Network cache.

Build behavior has been refined: framework cache directories are retained between builds, a 404.html output is honored when rendering errors, and the build log stream shows up in the Web UI within 250ms instead of 500ms. Creating a Deployment with the legacy builds property in vercel.json triggers a warning that Build and Development Project Settings won't apply. Deployments that fail for expected reasons—like the CLI being asked to upload more files—no longer count against the rate limit. Serverless Functions written in Ruby no longer crash when returning UTF-8 characters like emojis.

Web UI Fixes

The dashboard got a round of polish. The pricing page now includes options for open source projects and prospective Vercel partners. Dismissing the news banner keeps it dismissed, and the login flow now correctly tells you to expect a redirect instead of telling you to close the window.

Several edge cases were fixed: .tk, .ga, .ml, and .cf domains no longer cause errors in Project Settings; domains stuck in a non-editable state after an invalid input error are now recoverable; and the Functions tab of a deleted Deployment no longer breaks the interface. Long team names display properly, and on iPad the Team Settings footnotes stay on one line while the homepage renders without clipping.

Teams with outstanding payments can no longer adjust Concurrent Builds, Password or SSO Protection, or the Preview Deployment Suffix. The Activity tab renders instantly when data is already loaded, and switching credit cards makes it obvious which one is the default. Importing a non-existent or empty Git repository now produces a useful error, as does importing a repo that your GitHub Integration can't access. Source files with dot-prefixed names uploaded via Vercel CLI now display their content properly in the UI. The Security page had a broken section removed, and a confirmation modal appears when you leave a Team. Log output during builds is now truncated after 2,000 lines with a warning to protect browser memory.

Command-Line Improvements

The Vercel CLI package shipped at half its previous size, and all Official Runtimes are now bundled directly with it—no separate installation step. Community Runtimes can optionally implement a new startDevServer method to optimize vercel dev performance.

For Node.js projects, vercel dev starts up faster and picks up source changes immediately. The new routing properties are applied correctly when builds isn't defined in vercel.json. The .vercelignore file can now force-upload paths the CLI would otherwise skip, such as node_modules.

Running vercel without an internet connection shows a helpful error, and running it right after signing up no longer fails. Options placed before subcommand arguments (like --debug) no longer trigger usage output. The CLI no longer installs Yarn for Community Runtimes; it assumes npm is present and errors if not. Mixing now.json and vercel.json configuration methods now produces an error recommending the newer file. Update messages point to the vercel package rather than the outdated now package, and the first Deployment in a Project suggests vercel --prod instead of now --prod. All err.sh references now resolve, with vercel.link used throughout.

Domain Handling

The .coop TLD was removed from the purchase list due to registrar requirements. Nameservers for connecting .dk domains now match the registrar's guidelines. Domains bought through Vercel display a clear DNS propagation status, and a custom domain is assigned to its Deployment even before the SSL certificate is ready—so the site may be served over http momentarily until the certificate finishes issuing.

Docs and API updates

The Custom Domains documentation now includes a link to a guide for performing zero downtime domain migrations. Documentation for the builds configuration property now clearly states when the property should be used. The API Reference for creating Deployments has been updated to reflect that the endpoint now accepts a project parameter. The Limits and Fair Use Policy pages now note that users can contact Vercel Support to have those limits lifted.

Integration changes

The Slack Integration has been renamed from "ZEIT Events" to "Vercel." The GitHub Integration now correctly respects the github.silent setting in vercel.json when used alongside the Root Directory Project Setting, preventing unwanted comments on commits. The Bitbucket Integration now displays "Vercel" instead of "zeit-now" as the name of the check that appears when deploying a commit. Integrations that have not yet been approved by a team are now blocked from search engine indexing and will show a status message in the Web UI.