How-toMicrosoft Dynamics 365 Business CentralUpgrade / 2024 release wave 2 (v25)

Upgrade to Business Central 25: How to Update SaaS and On-Premises

Question
upgrade to business central 25

Also searched as

  • how to update business central
  • business central 2024 release wave 2 upgrade
  • update business central on-premises to version 25
  • business central update environment admin center

Short answer

Business Central version 25 is the 2024 release wave 2. For SaaS you schedule or accept the update from the Business Central admin center after testing in a sandbox. On-premises you install the new server, convert the database, then synchronize and upgrade each extension. The real work is making every extension compile and upgrade cleanly on the new version first.

Applies to: Business Central 2024 release wave 2 (v25), online and on-premises. Confirm your exact source version against Microsoft's supported upgrade path table before starting.

Update to version 25 safely

  1. 1Inventory everything installed: per-tenant extensions, AppSource apps and customizations. In SaaS use the Extension Management page, on-premises list apps with the administration shell.
  2. 2Read Microsoft's release plan and the deprecation and breaking change notes for the version, and list anything that touches your extensions.
  3. 3SaaS: create a sandbox copy of production in the admin center (Environments), then update the sandbox to the new version and test there. Online, you can see the available target versions and set the update window on the environment.
  4. 4Fix and republish extensions. Update runtime and platform/application dependencies in app.json, recompile against the new symbols, and add or fix upgrade code for any schema changes.
  5. 5Check partner and AppSource apps for a compatible version. An app without one blocks the upgrade or must be uninstalled first.
  6. 6SaaS: set the update window in the admin center and let Microsoft run it, or update on your chosen date when the version is offered. Back up first through the environment's database export or copy if policy requires it.
  7. 7On-premises: install the v25 server components, restore a copy of the database, run the database conversion, then synchronize and upgrade the tenant and each app. Test on a copy before production.
  8. 8After the update, run a defined smoke test: post a sales and purchase document, run a batch job, test integrations and reports, then check the event log and Extension Deployment Status.

SaaS: how the update actually works

In SaaS Microsoft owns the platform, and each environment is updated to a new major version according to a published schedule. Admins can choose an update window within the allowed period and can see in the admin center when a new version is available for a given environment. Sandboxes can usually go first, which is the point: you find extension breakage in the sandbox, not in production.

If an extension fails to upgrade or a required app is incompatible, the environment can remain on the previous version until it is fixed, and Microsoft has deadlines after which an environment is updated anyway. Do not leave this to the last month. The Extension Deployment Status page and admin center notifications show which app blocks you.

On-premises: the upgrade outline

The on-premises process is a technical upgrade: install the new server and web client, point it at a copy of the database, convert the application database, synchronize the tenant schema, then upgrade each app's data with its upgrade codeunits. System and base application packages must be published first, then your extensions in dependency order. Use the Business Central administration shell, and check the documentation for the exact cmdlet names and parameters for your source version.

Plan for the SQL Server version and Windows or .NET prerequisites of the new version, as requirements move between releases. Dry-run the full sequence on a copy, time it, and write down the order. A rehearsal is the only reliable way to estimate the downtime window for a large database.

# Outline only - verify cmdlets and parameters in the docs for your versions
Invoke-NAVApplicationDatabaseConversion -DatabaseServer <server> -DatabaseName <db>
Sync-NAVTenant -ServerInstance BC250 -Mode Sync
Publish-NAVApp -ServerInstance BC250 -Path .\MyApp.app -SkipVerification
Sync-NAVApp -ServerInstance BC250 -Name MyApp -Version 1.2.0.0
Start-NAVAppDataUpgrade -ServerInstance BC250 -Name MyApp -Version 1.2.0.0
Get-NAVAppInfo -ServerInstance BC250 -TenantSpecificProperties

Extensions, upgrade code and what usually breaks

Most failed updates come from extensions, not the base product. Typical causes: an event publisher the extension subscribes to changed signature or was removed, a table field was made obsolete, an API or code that was marked for removal finally went away, or the extension needs a data upgrade it does not have. Compile against the new symbols early and treat each error as a work item.

Data upgrade logic lives in codeunits with Subtype = Upgrade, using OnCheckPreconditionsPerCompany, OnUpgradePerCompany and OnValidateUpgradePerCompany triggers. Use upgrade tags so the logic runs once. If you changed table schemas, make sure the extension declares the right ObsoleteState and, for destructive changes, understand when the data is lost, which depends on the schema sync mode.

A test plan that catches real problems

Build a regression list of the processes the company cannot do without: order to cash, procure to pay, production orders, month-end close, bank reconciliation, key reports and every integration. Run it in the updated sandbox with realistic data volume and with the profiles your users actually use.

Include performance. A new version can change queries, and extensions that were fine at the old version sometimes surface slow queries. Compare a few heavy operations such as posting a large batch, running MRP or a planning worksheet calculation, before and after. If you run on-premises, look at SQL wait statistics, not only user complaints.

Try it here, free

Business Central SaaS vs On-Premises TCO Calculator

Open full tool

Model subscription, licensing, infrastructure, admin time and upgrade effort for BC online versus on-premises over 1 to 10 years.

Common pitfalls

  • !Updating production before a sandbox of the same data has passed the full regression list.
  • !Forgetting AppSource and partner apps. A single incompatible app can hold the whole environment back.
  • !Assuming a direct jump is supported from any old version. Check the supported upgrade path table for your exact source version.
  • !Skipping upgrade tags in upgrade codeunits, so migration logic runs twice or not at all.
  • !Leaving the SaaS update to the forced deadline. A failed extension upgrade then happens under pressure.
  • !Not recording the order of publish, sync and upgrade for on-premises, which makes the production run slower than the rehearsal.

How an ERP-grounded AI assistant handles this

Version upgrades are mostly diffing: which events, fields and APIs your extensions use versus what the new version changed. An assistant with a private index of your AL source (hosted on your own infrastructure for on-prem customers) can list the extension objects that reference changed or obsolete symbols and draft fixes for developers to review. It does not run the upgrade, which stays a controlled human process.

Frequently asked questions

Is Business Central 25 the same as 2024 release wave 2?

Yes. Microsoft numbers major releases, and the October 2024 release (2024 release wave 2) is version 25. Minor updates continue between major versions in SaaS, so the exact build number shown in the client can be higher than 25.0.

How do I update Business Central online?

In the Business Central admin center open Environments, select the environment, and use the update options to see the available version and set the update window. Update a sandbox copy first. The platform handles the update itself, but extensions must be compatible.

Can I upgrade on-premises Business Central directly from an old version to 25?

It depends on the source version. Microsoft publishes supported upgrade paths, and older versions often need an intermediate step. Check the documented table for your exact version and test the whole path on a database copy before scheduling production.

What breaks most often when updating Business Central?

Custom and third-party extensions. Changed event signatures, removed obsolete elements and missing upgrade logic are the usual causes. The base product upgrade itself is rarely the problem, so test extensions first.

Related

How-to

Business Central Upgrade Path: From NAV and Older BC Versions to Current

From Dynamics NAV the usual path goes to Business Central 14, the C/AL bridge version, then onward to later extension-based versions. From an older Business Central version you follow the documented upgrade matrix, sometimes in steps. The right route also depends on whether you move to SaaS, where cloud migration is an alternative to an in-place upgrade.

How-to

Business Central Integration Events: How to Publish and Subscribe in AL

An integration event is a procedure marked with the IntegrationEvent attribute that has an empty body. Code elsewhere subscribes to it with the EventSubscriber attribute, so extensions can change standard behavior without modifying base objects. You publish with IntegrationEvent, subscribe with EventSubscriber, and pass var parameters when the subscriber needs to alter data.

Error fix

Fixing "You do not have the following permissions on TableData (table): (permission)" in Business Central AL

This runtime error means the current user's assigned permission sets do not grant the required Insert, Modify, Delete, Read, or Execute right on that specific table. It is most common right after installing or updating a custom AL extension, because Business Central checks object-level permissions even for tables an extension owns.

Error fix

Business Central Error Messages: What They Mean and How Errors Are Handled

Most Business Central errors come from a few AL patterns: TestField and FieldError for missing or invalid field values, Error for rule violations, and permission or locking messages from the platform. Developers can customize them with Error and ErrorInfo, collect many errors at once, or catch them with TryFunction. If the whole service is unreachable, check service health and environment state first.

Error fix

Fixing "Cannot create a record in (table). The record already exists" in D365 F&SCM data entity imports

This is the standard kernel duplicate-key exception, thrown when the Data Management Framework tries to insert a staging row into a target table whose unique or alternate key already matches an existing record. It almost always means the entity's insert-vs-update logic did not recognize the target row as an update, not that you have a true accidental duplicate in your source file.

Error fix

Fixing "There are currently no batch servers available for processing" in D365 F&SCM

This message means the batch framework cannot find any AOS instance flagged as a batch server and available for the batch group the job is assigned to. The fix is almost always in server configuration (System administration > Servers) or batch group assignment, not in the batch job itself.

AI for ERP

AI for Dynamics 365 Business Central, on-premises or SaaS, beyond Copilot

AI for Business Central beyond Copilot: grounded question answering over BC's data via OData and APIs, for on-premises and SaaS tenants alike.

AI for ERP

AI for Dynamics NAV 2009-2018, before or instead of a Business Central migration

Add AI to Dynamics NAV 2009-2018 without a Business Central migration: ground an LLM on C/AL tables through SQL Server, on-prem or private cloud.

Stuck on Microsoft Dynamics 365 Business Central?

Talk to engineers who work inside Microsoft Dynamics 365 Business Central every week, and who build private AI that answers these questions from your own ERP data.

Keep exploring

Free tools

ERP fixes and how-tos

AI on your ERP

Integrations

Comparisons

Software