Changelog

What's new with Convex?

Every update, improvement, and release we've shipped — backed by the community, in the open.

Planned
10
In progress
2
Shipped
279
Updated
2026.11.13
Release Nov 13, 2026

convex 1.50.0

Multiple CLI accounts: The CLI can now switch between Convex accounts saved under aliases like work and personal. Log into another account and select it for the current directory with npx convex login --account work --select, then select an account for another directory with npx convex account select work. Your current login becomes the default account. CONVEX_ACCOUNT overrides a directory's selection. Project commands use these selections once the project's convex dependency is on 1.50.0. In projects with an older CLI installed, manage accounts with npx convex@latest. Run npx convex@latest account --help or see the account reference for details. Scheduled mutations can't cancel themselves: Starting with convex 1.50.0, a scheduled mutation that calls ctx.scheduler.cancel on its own scheduled function ID throws ScheduledFunctionCancelingItself. If the error isn't caught, the mutation rolls back and its scheduled function is marked as failed. Older versions keep the previous behavior: the cancellation does nothing and logs a deprecation warning. To end a scheduled mutation early, return from it. See Scheduled Functions. Owner-only credential files: On macOS and Linux, CLI credential files are now readable only by their owner. This includes existing ~/.convex/config.json files and account credentials in ~/.convex/accounts/. Exports without a local download: npx convex export can create an export without downloading it. Omit --path to download it later from the dashboard link, or pass --path to download it right away. Canceled exports are now reported as failures. signJwt types: The types of ctx.auth.signJwt now match what deployments accept. claims is required and must include an aud claim: a non-empty string or a non-empty array of non-empty strings. jti is typed as a string. If you don't pass one, Convex sets a random one. Fixes: - npx convex dev --once --start now fails when the command passed to --start fails. - npx convex dev --once --skip-push no longer leaves a local backend running after it exits. - Child component import paths in a component's _generated/api.ts now point to the right directory. convex@1.50.0 on npm

#332 Support signin in to multiple accounts in the CLI
v1.50.0 npm 1 item 255
TCNicolas EttlinARBB
+3
8 backers
Release Oct 15, 2026

convex v1.47.0

• Fixed the next step printed by npx convex project create. It suggested npx convex deployment create <team>:<project>:dev --type dev, which always failed because dev is reserved for your default dev deployment. It now suggests a dev/my-feature reference and passes --select. • npx convex deploy now asks for confirmation before creating or changing an index on a large table, since the deploy blocks until the index is backfilled. Stage the index (staged: true) to backfill it in the background instead, or pass the new --skip-large-indexes-check flag to proceed without confirmation. That flag also covers deleting large indexes, replacing the hidden --allow-deleting-large-indexes flag, which keeps working. • The envList MCP tool now returns only environment variable names by default, so secrets stay out of the agent's context. Pass includeValues: true to get the values too, or use envGet to read a single variable. • npx convex env list and npx convex env default list have a new --include-values flag for printing values explicitly. Values are still printed by default. The docs and help text now use --include-values wherever the values are needed, like npx convex env list --include-values > .env.convex, and --names-only for just listing variables. • Added .staged() to defineTable for validating a schema change in the background instead of blocking the deploy on a scan of the table. Pass the fields to add or change, set a field to undefined to remove it, or pass a full validator. The current validator stays enforced while Convex checks existing documents and new writes against the staged one. npx convex deploy and npx convex deploy --dry-run report each staged table as validating, validated, or failed, and the dry-run warning about scanning large tables now suggests staging the validator. Once a staged validator is validated, moving it into defineTable deploys without scanning the table. A deploy that would discard pending or completed staged validation asks for confirmation; pass --allow-unstaging-schema to skip the prompt in CI. See https://docs.convex.dev/database/schemas#staged-validators • ctx.meta.getSnapshotTs() is now public API. It returns the database timestamp of the snapshot the current function reads from, in nanoseconds, on the same clock as db.vars.commitTs. See https://docs.convex.dev/database/advanced/commit-timestamp • convex/server exports getServiceUrl, which returns the base URL of a Convex-managed service such as the AI gateway, to pair with getServiceToken, along with a ServiceName type. The client no longer rejects service names it doesn't know about, so libraries can adopt new services without requiring a newer convex version. • Fixed the Convex MCP server stalling permanently after overlapping tool calls. • Fixed the error reported when a function or symbol is passed where a Convex value is expected. It now names the unsupported type and its path, like Function "[Function]" is not a supported Convex type at .cb, instead of throwing Cannot read properties of undefined (reading 'length'). • When a push fails because an environment variable used by auth.config.ts is not set on the deployment, the CLI now prints the npx convex env set commands to run and a link to the deployment's environment variable settings. • Region prompts in the CLI list regions in the same order as the dashboard, and npx convex deployment create --region accepts the Canada (aws-ca-central-1) and Asia Pacific (aws-ap-southeast-2) regions. See https://docs.convex.dev/production/regions • npx convex deployment usage-limits set --metric aiGatewayCostDollars sets the AI gateway spending limit.

v1.47.0 npm

Watch the release walkthrough

See what’s new in this release