Motoko 1.14 Raises the Stable-Memory Ceiling—and Sharpens Variant Derivation
Motoko 1.14, released on August 11, adds structural implicit derivation for variants, raises the default stable-memory maximum from 4 GiB to 100 GiB, and fixes several compiler and Candid interoperability defects. The release gives ICP developers more room for persistent data while making generic serialization patterns easier to express.

Motoko 1.14 is a small release with a distinctly practical profile: it expands the headroom for persistent canister data and improves how the compiler derives operations for variant types.
The headline operational change is the default maximum for stable memory. The release notes say Motoko now defaults to 100 GiB, up from 4 GiB, for the stable-memory limit used by the Region library. Developers can still override the setting with --max-stable-pages.
That matters for canisters whose durable state grows beyond ordinary application records: archives, indexes, histories, and other Region-backed data structures can be developed without immediately running into the compiler’s previous default ceiling. The important qualification is that this is a Motoko default and a Region-library ceiling—not a promise that every deployed canister automatically has 100 GiB of available storage. Actual capacity remains subject to the Internet Computer’s canister and network constraints.
The release also extends structural implicit derivation to variants through the __variant combiner. In practical terms, Motoko can synthesize a wrapper that switches on the active variant case and applies a combiner to its tag and payload thunk. If each case has the required instances, developers can derive operations such as serialization without writing repetitive case-by-case glue.
For ICP codebases, this is more than syntax polish. Variant-heavy interfaces are common around Candid services and application state machines. Better derivation can reduce hand-written conversion code, but it does not remove the requirement that the relevant payload types provide compatible instances.
Motoko 1.14 also implements the Candid subtyping rule service <actortype> <: principal, so service references decode as Principal in direct decoding and deferred subtype checks on function references. The release fixes a class-in-expression lowering bug and a self-tail-call compiler crash or miscompilation involving tuple-returning expressions.
The release is therefore best read as an engineering maintenance upgrade with two developer-facing gains: more default stable-memory headroom and less boilerplate around variant-based data. Teams should test upgrades against their existing stable state and generated interfaces, especially where custom compiler flags or migration-sensitive code are involved.
Get the wire in your inbox
Every new signal, straight from the generator. No noise, unsubscribe anytime.


