- Added
.optional()to all validators. For example,v.string().optional()is equivalent tov.optional(v.string()). This changes TypeScript compatibility between validators from different Convex versions; projects sharing validators across packages may need to align theirconvexdependency versions. npx convex deploy --dry-runnow warns when a schema change requires checking every document in large tables against the new schema, since these deploys can take a long time. The warning lists the affected tables along with their document counts and sizes.- Fixed a bug where
npx convex deploycould fail with adeployment:data:viewpermission error when deleting indexes with a deploy key that only hasdeployment:deploy. The CLI now reuses the schema evaluation response to size the affected tables instead of reading them directly, sodeployment:data:viewis no longer required. convex/serverexportsFunctionReference_future, a reference type whose arguments are checked similar to the way Convex checks them at runtime. Use it instead ofFunctionReferencewhen you accept someone else's Convex function as a callback and know which arguments you will pass it. Behavior summary: it rejects a function requiring arguments you never pass, rejects a function that does not declare a top-level argument you do pass, and accepts a function taking broader values than you pass. A plainFunctionReferencegets the first and third backwards. The surplus-key check stops at the top level: a surplus key inside a nested object, array element, or union arm is not detected. A value of the type is usable withctx.runMutation,ctx.scheduler.runAfter,createFunctionHandle, and every other API in this package that takes a reference, all of which now acceptFunctionReference | FunctionReference_future. It is deliberately not assignable to a plainFunctionReference, so forwarding one into code typed that way is a compile error rather than a silent loss of argument checking. Library code that wants to accept either kind of reference should take that same union and read arguments and return types throughFunctionArgsandFunctionReturnType, which accept either kind.- As a part of the
FunctionReferencefuturework, theargsand_returnTypeslots onFunctionReferenceare deprecated. They'll be removed in a future version.FunctionReferencegains an optional_fnslot that enables the checked comparison of args.
Product Release September 16, 2026
convex v1.46.0
convex v1.46.0
AD
Ayush Dewan
Published on September 16, 2026