LTRAC-1946: fix(cli) - Correct the managed-zone checkout URL advice - #3240
Merged
jorgemoya merged 4 commits intoSep 28, 2026
Conversation
🦋 Changeset detectedLatest commit: be6bdeb The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Bundle Size ReportComparing against baseline from No bundle size changes detected. |
Contributor
Unlighthouse Performance Comparison — VercelComparing PR preview deployment Unlighthouse scores vs production Unlighthouse scores. Summary ScoreAggregate score across all categories as reported by Unlighthouse.
Category Scores
Core Web Vitals
|
jorgemoya
force-pushed
the
jorgemoya/ltrac-1946-cli-stop-telling-merchants-a-checkout-subdomain-cant-be
branch
from
September 24, 2026 15:43
75362a0 to
63d7c03
Compare
jorgemoya
changed the base branch from
canary
to
TRAC-1896/fix/cli-pnpm12-dlx-allow-build
September 24, 2026 15:45
jorgemoya
marked this pull request as ready for review
September 24, 2026 19:39
jorgemoya
marked this pull request as draft
September 24, 2026 19:47
Base automatically changed from
TRAC-1896/fix/cli-pnpm12-dlx-allow-build
to
canary
September 24, 2026 20:03
jorgemoya
marked this pull request as ready for review
September 25, 2026 16:15
mfaris9
approved these changes
Sep 25, 2026
jordanarldt
approved these changes
Sep 25, 2026
jorgemoya
enabled auto-merge
September 28, 2026 20:25
The cross-domain checkout diagnostic told merchants that a storefront on an auto-generated deployment hostname could never have a checkout URL, because a checkout subdomain of one "cannot be issued a certificate", and pointed them at `catalyst domains add` to buy a custom domain instead. That reasoning is wrong. The auto-generated hostnames are Cloudflare for SaaS custom hostnames rather than names covered by a single-level wildcard certificate, and custom hostnames have no label-depth limit — each is issued its own certificate. The harm was sending merchants to acquire a domain they do not need. The diagnostic now names the checkout hostname that will exist and reports it as not provisioned yet, and no longer recommends adding a custom domain. `suggestCheckoutUrl` gains a managed-zone mode. It prefixed `checkout.` unconditionally, naming a hostname nobody will create on a managed zone and spending nine characters of a 64-character certificate common-name budget the project name has to share. Behaviour is otherwise unchanged: a checkout URL is still neither offered nor suggested on a managed zone, since the hostname is not provisioned yet. Correct the two comments that justified that guard with the same wrong premise — the guard matters more than they implied, because BigCommerce would accept such a URL and leave checkout resolving without a certificate. Fixes LTRAC-1946 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… hostname The managed-zone diagnostic said the checkout hostname "isn't provisioned yet", as if something else would create it later. Testing on integration showed the checkout-url PUT is itself what provisions it: BigCommerce registers the hostname with bcserver, which creates the Cloudflare custom hostname and issues its certificate. The diagnostic now names the hostname and prints the exact `channels update --checkout-url` command that sets it. The guards that skip the generic advice on a managed zone stay; their comments now give the real reason. Managed-zone detection now uses the zones native hosting generates hostnames under, mirroring ignition's reserved suffix list. Deriving zones from `deployment_hostnames` counted merchant domains added with `catalyst domains add`, which appear there too, so a merchant's own domain could be called an auto-generated hostname. The check is now synchronous, so the "zone unknown" fallback and the projects lookup go away. Refs LTRAC-1946 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Refs LTRAC-1946 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Refs LTRAC-1946 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
jorgemoya
force-pushed
the
jorgemoya/ltrac-1946-cli-stop-telling-merchants-a-checkout-subdomain-cant-be
branch
from
September 28, 2026 20:25
57eeab4 to
be6bdeb
Compare
jorgemoya
deleted the
jorgemoya/ltrac-1946-cli-stop-telling-merchants-a-checkout-subdomain-cant-be
branch
September 28, 2026 20:55
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linear: LTRAC-1946
What/Why?
The cross-domain checkout diagnostic told merchants on an auto-generated hostname (
<project>.catalyst-sandbox.store) that no checkout URL could ever be set, and sent them to buy a custom domain. That was wrong. It now names the checkout hostname,c.<project>.<zone>, and prints thecatalyst channels update --checkout-urlcommand that sets it. Setting the URL is what provisions the hostname.Worth a look:
reservedBaseDomainSuffixes. Deriving zones fromdeployment_hostnamescounted merchant domains fromcatalyst domains add, which appear there too.suggestCheckoutUrlgains amanagedZonemode that suggestsc.instead ofcheckout..Testing
checkout-url,channelsandchannel-site-flowspecs pass;tscandeslintare clean. New cases cover the printed command, a merchant subdomain not being treated as managed, and the old "cannot be issued a certificate" text not coming back.Migration
None.
🤖 Generated with Claude Code