Skip to content

cloud-vm smoke: --paid marks the smoke user as a pro plan - #11375

Merged
lawrencecchen merged 1 commit into
mainfrom
feat-smoke-paid-plan
Sep 1, 2026
Merged

lawrencecchen merged 1 commit into
mainfrom
feat-smoke-paid-plan

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

The Pro gate (#11332) returns 402 vm_requires_pro for free plans, which killed the sanctioned production create smoke (scripts/cloud-vm/smoke-vm-api.mjs --create). --paid sets the billing metadata key the entitlements layer reads (clientReadOnlyMetadata.cmuxVmPlan = "pro") on the throwaway smoke user, restoring the verification path without touching the global CMUX_VM_ALLOW_FREE_PROVISIONING escape hatch.

Verified against production this morning while investigating the 07:10-07:29 UTC failure burst (Blaxel us-was-1 platform incident): --paid create 200 on blaxel (34.8s during their degradation), attach over cmux-remote, destroy clean; without --paid the same flow correctly 402s. Operator script only.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Adds a --paid flag to web/scripts/cloud-vm/smoke-vm-api.mjs that sets the cmuxVmPlan = "pro" billing metadata key on the throwaway smoke user, restoring the create smoke path that broke when free plans started returning 402 vm_requires_pro.

  • Without --paid, the create flow still 402s as expected.
  • The flag is scoped to the script; it doesn't touch the global CMUX_VM_ALLOW_FREE_PROVISIONING escape hatch.

Written for commit d5066c3. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features
    • Added a --paid option to the VM API smoke test, allowing tests to run with a simulated Pro plan.
    • Updated the command usage documentation to include the new option.

The Pro gate (#11332) returns 402 vm_requires_pro for free plans, which
killed the sanctioned production create smoke. --paid sets the billing
metadata key the entitlements layer reads (clientReadOnlyMetadata
cmuxVmPlan=pro) on the throwaway smoke user, restoring the verification
path without touching the global CMUX_VM_ALLOW_FREE_PROVISIONING escape
hatch. Verified against production: paid create 200 on blaxel, attach,
destroy clean; unpaid still 402.
@vercel

vercel Bot commented Sep 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
cmux166 Building Building Preview Sep 1, 2026 7:46am UTC
cmux41 Building Building Preview Sep 1, 2026 7:46am UTC

@lawrencecchen
lawrencecchen merged commit 9f14777 into main Sep 1, 2026
8 of 11 checks passed
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Sep 1, 2026

This branch was successfully deployed

2 active deployments
Preview – cmux166 — d5066c31 Deployed Sep 1, 2026 by vercel[bot]
Preview – cmux41 — d5066c31 Deployed Sep 1, 2026 by vercel[bot]
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant