TL;DR
One Version commits Microsoft to four service updates a year, a floor of two, one pause, and a backward-compatibility promise covering binary and functional compatibility. It also names its own exclusions in the same paragraph — non-X++ APIs and dependent software libraries. Here is the guarantee quoted, and the boundary quoted, from the pages that carry both.
What does One Version actually guarantee, and what does it not?
One Version is usually described in a sentence — everyone runs the same version — and that sentence is why architects mis-scope it. The guarantee is narrower and more useful than the slogan, and Microsoft publishes its own exclusions in the same paragraph as the promise.
This is for the CIO, IT director or enterprise architect who has to tell a risk committee what Microsoft is actually on the hook for.
The claim: it is a cadence, a floor, and a bounded compatibility promise
One Version commits Microsoft to a fixed number of service updates a year, commits you to a minimum number of them, and commits both parties to a compatibility contract that covers X++ and metadata and explicitly does not cover everything else. It does not commit Microsoft to leaving your system unchanged, and it never did.
Here is the whole commitment set, every cell quoted from Microsoft.
- **Updates per year** — Microsoft's words: "Each year, four service updates are released." · Where: One Version service updates FAQ
- **Which months** — Microsoft's words: "Service updates are provided four times annually. Autoupdates occur in February, April, July, and October." · Where: Service update availability
- **Your minimum** — Microsoft's words: "Customers can take up to four service updates per year and are required to take a minimum of two per year." · Where: same page
- **How far behind you may fall** — Microsoft's words: "You're required to use an update that's no more than one update behind the current update." · Where: One Version service updates FAQ
- **Pauses** — Microsoft's words: "The maximum number of consecutive updates that can be paused is reduced from three to one." · Where: same page
- **Major updates** — Microsoft's words: "There are two major updates each year: the April update and the October update… Major updates don't require code or data upgrade." · Where: same page
- **Breaking changes** — Microsoft's words: "Breaking changes are communicated 12 months in advance… Breaking changes are introduced only during major updates." · Where: same page
- **New features** — Microsoft's words: "All new features are available on an opt-in basis for a 12-month period. They don't require any change management until you enable them." · Where: same page
- **Validation time** — Microsoft's words: "You have seven calendar days for validation after the update is applied to your sandbox environment." · Where: same page
Read the pause row carefully, because it is the one people quote from memory and get backwards. The number of pauses came down, and Microsoft says the floor did not move with it: "However, because release durations are extended, the same minimum of two service updates per year is maintained."
What "backward compatible" is defined to mean
Microsoft does not leave this as an adjective. The FAQ defines it in two parts:
"Binary compatibility means that you can apply an update in any runtime environment without
having to recompile, reconfigure, or redeploy customizations. It also means that, in a development
environment at design time, X++ public and protected APIs and metadata aren't modified or deleted.
If Microsoft must break compatibility by removing obsolete APIs, the change is communicated 12
months in advance and follows a deprecation schedule."
"Functional compatibility refers to the user experience. All new experiences are available on
an opt-in basis for a 12-month period."
— One Version service updates FAQ
That is a genuinely strong promise and it is the reason F&O upgrades stopped being projects. It is also, precisely, a promise about X++ public and protected APIs, metadata, and the user experience.
The exclusions are Microsoft's, not our inference
This is the part worth quoting to anyone who treats One Version as a blanket. It is the next paragraph on the same page:
"Backward compatibility doesn't include non-X++/metadata APIs. Microsoft reserves the right to
update versions of any dependencies that the product uses, and to remove dependencies, without
early warning. Microsoft doesn't commit itself to maintaining backward compatibility of dependent
software libraries unless this commitment is expressly stated."
— One Version service updates FAQ
Three things to notice. "Without early warning" is Microsoft's phrase, and it sits deliberately against the twelve-month notice given for X++ breaks. "Unless this commitment is expressly stated" makes the default position explicit. And the exclusion is written as a category — non-X++/metadata APIs — not as a list you can check yourself against.
The deprecation rules carry their own hedges, and they matter:
"After a period of at least 12 months, Microsoft might remove obsolete methods and metadata
elements. However, if telemetry shows that you still use any obsolete methods or metadata
elements, Microsoft won't remove them."
— Deprecation of methods and metadata elements
So the twelve months is a floor, not a date, and removal is conditioned on telemetry. The same page also warns about the gap that condition creates: "Microsoft might have removed the artifact because there's a time window between when releases and telemetry are available." And the notice period is not uniform — for compile-time-only breaks, "the deprecation time is less than 12 months."
What the guarantee is scoped to, stated as narrowly as we checked it
"Microsoft doesn't guarantee X" is a claim about everything Microsoft has written, so here is the bounded version. Pages opened for this article: the One Version service updates FAQ, the One Version service updates overview, Service update availability, the Software lifecycle policy, Deprecation of methods and metadata elements, and Removed or deprecated features.
The backward-compatibility answer in the One Version FAQ is an answer about the service update package. The same FAQ states that "Add-in components, Power Apps, and Dataverse are updated independently of the service update package and process for finance and operations apps." So the compatibility contract quoted above is scoped to the thing that ships as one version, and the add-in trains sit outside that package by Microsoft's own description of them.
Two more things those pages do state, both often mistaken for gaps:
- There is no rollback. "As with other code promotions, rollbacks can't be done after a service update is applied." Microsoft points at flighting and feature management as the mitigation instead.
- End of service is a support cliff, not a shutdown. "Microsoft doesn't investigate, troubleshoot, or provide any fixes to issues on versions that reached their end of service" (Software lifecycle policy), and the Support team "can't take cases" for them. The environment keeps running; the help stops.
The arithmetic the guarantee produces
Microsoft works its own pause example, which is better than one of ours: "a customer is running version 10.0.39 and chooses to pause update 10.0.40. In this case, service update 10.0.41 is automatically applied first to the Tier-2 sandbox environment, and then later to all other sandbox environments and production environments."
Around that sit four operational numbers, all Microsoft's:
- **Sandbox lead time** — "A sandbox autoupdate occurs seven days before the production update."
- **Other sandboxes** — "All other sandboxes are automatically updated on the same day as the production environment."
- **Expected downtime** — "The expected downtime for a successful update is approximately 15 minutes. However, Microsoft asks for three hours of downtime in case issues occur."
- **Autoupdate windows** — "customers can choose between two autoupdate windows that occur four weeks apart for every service update" — and pausing is not partial: "Customers are explicitly required to pause both autoupdate windows to pause a release if they are eligible to do so, based on the pause policy."
One consequence of that second window is worth having in front of you before you plan a freeze. The targeted release schedule gives 10.0.49's first autoupdate production start date as October 2, 2026 and its second as November 1, 2026 — so the month your update actually lands is not necessarily one of the four months Microsoft names for autoupdates.
Where this goes wrong
Reading "backward compatible" as "our integrations are safe." The compatibility contract covers X++ public and protected APIs and metadata. Microsoft names non-X++ APIs and dependent software libraries as outside it, and reserves the right to move dependency versions without early warning. Integration surfaces are exactly where that lands.
Treating opt-in as a permanent off switch. New experiences are opt-in "for a 12-month period" — a window, with an end.
Planning a pause you are not entitled to. The pause needs your estate to be compliant. Microsoft is direct: for environments on noncompliant versions, "Microsoft can't make exceptions."
Pausing one window and calling it paused. Both windows have to be paused, explicitly. This is the cheapest self-inflicted update in the whole model.
Assuming twelve months is a date. It is "at least 12 months", removal is conditional on telemetry, and for compile-time-only breaks it is shorter.
Where we would draw the line
We would not sign a change-freeze commitment longer than one pause window, because the second update is not optional and the model says so in a sentence. We would not build an integration on a non-X++ surface and then cite One Version as its stability argument — the page that grants the guarantee is the page that excludes it. And we would not treat the seven-day validation window as the test plan; it is the calendar the test plan has to fit inside.
Dynamics 365 manages the update and guarantees the cadence. Deciding which of your decisions are sensitive to a version moving under them — and re-deciding it every quarter — is the part it leaves to you.
About Cognilium Cognilium is the AI optimization layer for Dynamics 365 — complementary apps that optimize the pricing, inventory, warehouse and planning decisions your ERP manages but can't optimize. Built on Power Platform, Dataverse and Azure. https://cognilium.ai · https://www.linkedin.com/company/37180269/
List the integrations that would break if a dependency version moved without notice. If that list is longer than you expected, book a fifteen-minute call and we will walk it with you, live — no deck. https://cognilium.ai
Sources
- One Version service updates FAQ
- Service update availability
- One Version service updates overview
- Software lifecycle policy and cloud releases
- Deprecation of methods and metadata elements
- Removed or deprecated features in previous releases
Sources
Share this article
Muhammad Mudassir
Founder & CEO, Cognilium AI
Muhammad Mudassir
Founder & CEO, Cognilium AI
Mudassir Marwat's argument is that ERP systems record decisions they never optimise.
