Motoko 1.15 Makes Migration History a Checked Artifact
Motoko 1.15.0 adds diagnostics for edited, deleted, or backdated migrations and makes stable-baseline checks follow the deployed migration chain’s resume point.

Motoko 1.15.0, released on August 28, adds a new safety layer for canisters using enhanced migration. The compiler now compares the local migration directory with the migration history recorded by --stable-baseline.
That comparison produces the new M0268 diagnostic when a deployed migration is edited, when a migration is deleted without removing the older chain consistently, or when a local migration is backdated ahead of the deployed head. M0268 is a warning treated as an error by default; teams can demote it with -W=M0268 or silence it with -A=M0268.
The release also changes how existing M0254 and M0267 checks interpret a baseline. Instead of replaying the entire migration chain, Motoko calculates requirements from the chain’s recorded resume point. Fields already explained by the baseline no longer generate an unnecessary M0254 warning. A field missing from the baseline can produce M0267, while incompatible fields retain the detailed M0170 or M0216 compatibility errors.
For ICP builders, the practical change is a stronger relationship between deployment history and source control. A migration file is no longer treated merely as local build input: under these flags, its order and contents are checked against what the baseline says the canister has already applied. That can catch a dangerous class of maintenance mistakes before deployment, especially when migrations are rebased, removed, or edited during a long-lived project.
The important limitation is conditional: M0268 and the revised M0254/M0267 behavior apply only when both --stable-baseline and --enhanced-migration are used. Teams that do not use this combination should not assume that Motoko 1.15 automatically validates their migration history. Builders adopting it should keep the baseline synchronized with the deployed canister and review any diagnostic before changing migration files.
Get the wire in your inbox
Every new signal, straight from the generator. No noise, unsubscribe anytime.


