web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Suggested Answer

Upgrade from BC14 to BC25

(6) ShareShare
ReportReport
Posted on by 22

Hello everyone,

I’m currently working with a Business Central 14 CU12 (version 14.0.41862.0) database and planning an upgrade to BC25.

According to Microsoft’s upgrade compatibility matrix, it seems that from BC14 CU12 the direct path is supported up to BC23, and from BC23 onward it’s possible to upgrade to BC24/25 (“Any update”).

My question is:

👉 Is it supported to upgrade directly from BC14 CU12 to BC25, or is it mandatory to first upgrade the database to BC23 and then move to BC25?

I’d really appreciate insights from anyone who has done this in practice, or clarification if the documentation allows skipping BC23.

Thanks in advance!

Tengiz

 
I have the same question (0)
  • Suggested answer
    Mohana Yadav Profile Picture
    61,204 Super User 2026 Season 1 on at
    We can upgrade to 25 directly
     
  • Suggested answer
    Khushbu Rajvi. Profile Picture
    22,130 Super User 2026 Season 1 on at
    There is no requirement to first move to BC 23. Microsoft explicitly supports a direct upgrade from BC14 to BC25.
  • TC-20051308-0 Profile Picture
    22 on at
    Thanks for your reply
     

    I tried running an upgrade directly from BC14 CU12 (14.0.41862.0) to BC25. During the process, the Invoke-NAVApplicationDatabaseConversion completed, but when running Sync-NAVTenant, I got the following error:

    Server instance: BC252
    Category: Sql
    Message (NavSqlException):
    Invalid column name '$systemCreatedAt'.
    Invalid column name '$systemCreatedBy'.
    Invalid column name '$systemModifiedAt'.
    Invalid column name '$systemModifiedBy'.
    SQL statement:
    SELECT TOP (1) "2000000189"."timestamp","2000000189"."Start Date","2000000189"."End Date","2000000189"."State","2000000189"."User Security ID","2000000189"."$systemId","2000000189"."$systemCreatedAt","2000000189"."$systemCreatedBy","2000000189"."$systemModifiedAt","2000000189"."$systemModifiedBy"
    FROM "MYT_BCUpgradeFull_2808".dbo."Tenant License State" "2000000189" WITH(READUNCOMMITTED) ORDER BY "Start Date" DESC
     
    • Is this a known limitation when trying BC14 → BC25 directly?

    • Does the upgrade path actually require BC23 in between to introduce the new system fields cleanly?

     
     
  • Suggested answer
    Mohana Yadav Profile Picture
    61,204 Super User 2026 Season 1 on at
    I hope you are following the below steps.
    First, you need to install apps and sync them before synchronizing tenant.
  • TC-20051308-0 Profile Picture
    22 on at
    Thanks 
     
    I'm following the steps you provided and there the order is to publish apps>Sync Tenant>Sync Apps>Install Apps:
     
     
    • #Task 10: Publish DestinationAppsForMigrations extensions
    • Publish-NAVApp -ServerInstance BC252 -Path "C:\BC23_Upgrade\Upgrade\EmptyExtention\MYT_bc14baseapptablesonly_1.0.0.0.app" -SkipVerification #BC14 Tables Only V1
    • Publish-NAVApp -ServerInstance BC252 -Path "C:\BC23_Upgrade\Upgrade\EmptyExtention\Microsoft_System Application_14.0.0.0.app" -SkipVerification #Empty System Application
    • Publish-NAVApp -ServerInstance BC252 -Path "C:\BC23_Upgrade\Upgrade\EmptyExtention\Microsoft_Base Application_14.0.0.0.app" -SkipVerification #Empty Base Application
    • Publish-NAVApp -ServerInstance BC252 -Path "C:\BC23_Upgrade\Upgrade\EmptyExtention\MYT_MYT.BCUpgradeApp_1.0.0.0.app" -SkipVerification #Empty BC23 Our Extension
    • Restart-NAVServerInstance  -ServerInstance BC252
    •  
    • #Task 11: Synchronize tenant
    • Sync-NAVTenant -ServerInstance BC252 -Mode ForceSync -Tenant Default -CommitPerTable:$True -verbose (here I'm getting the error)
    •  
    • #Task 11: Sync TableOnly Extention V1
    • Sync-NAVApp -ServerInstance BC252 -Tenant Default -Name "bc14baseapptablesonly" -Version 1.0.0.0 -Mode ForceSync -CommitPerTable:$True #BC14 Tables Only V1
    • Sync-NAVApp -ServerInstance BC252 -Tenant Default -Name "System Application" -Version 14.0.0.0 #Empty System Application
    • Sync-NAVApp -ServerInstance BC252 -Tenant Default -Name "Base Application" -Version 14.0.0.0 #Empty Base Application
    • Sync-NAVApp -ServerInstance BC252 -Tenant Default -Name "MYT.BCUpgradeApp" -Version 1.0.0.0 #Empty BC23 Our Extension
    •  
    • #Task 12: Run NAVDataUpgrade
    • Start-NAVDataUpgrade -ServerInstance BC252 -Tenant Default -FunctionExecutionMode Serial -SkipAppVersionCheck
    • Get-NAVDataUpgrade -ServerInstance BC252 -Tenant Default -Detailed | Out-GridView
    •  
    • #Task 12: Install DestinationAppsForMigration and move tables
    • Install-NAVApp -ServerInstance BC252 -Tenant Default -Name "System Application" -Version 14.0.0.0 #Empty System Application
    • Install-NAVApp -ServerInstance BC252 -Tenant Default -Name "Base Application" -Version 14.0.0.0 #Empty Base Application
    • Install-NAVApp -ServerInstance BC252 -Tenant Default -Name "MYT.BCUpgradeApp" -Version 1.0.0.0 #Empty BC23 Our Extension
     
    Please consider that I'm Upgrading Modified C/AL objects 
  • Suggested answer
    Mohana Yadav Profile Picture
    61,204 Super User 2026 Season 1 on at
    is there any reason for doing ForceSync?
     
    Can you try this simple command without CommitPerTable?
    Sync-NAVTenant -ServerInstance <server instance name> -Mode Sync -Tenant <tenant ID>
  • Suggested answer
    YUN ZHU Profile Picture
    99,086 Super User 2026 Season 1 on at
    What are the details of the error?
    Hope the following can give you some hints as well.
     
    Thanks.
    ZHU
  • TC-20051308-0 Profile Picture
    22 on at

     Thanks for your reply.

    The reason I’m using ForceSync is because there are a lot of modifications in the old standard objects (for example, changed field lengths). Without ForceSync, these schema differences block the sync.

    I also use CommitPerTable because the database is quite large and contains many custom tables. Running the sync with multiple smaller transactions at SQL level is more stable for us than having one large transaction for everything.

    Overall, the database is huge, so both parameters help the sync process complete more reliably in our environment

  • OC-16100802-0 Profile Picture
    4 on at
    We got past this by setting the SqlCommandTimeout to larger than standard 00:30:00 (30 minutes) to fx. 12 hours
      Set-NAVServerConfiguration -ServerInstance BC252 -KeyName SqlCommandTimeout -Keyvalue "12:00:00"
     
    But we still get error when Sync-NAVApp on "Base Application" on creating index on Value Entry (~72 million records)
     
    Statement: CREATE UNIQUE CLUSTERED INDEX VSIFTIDX ON dbo."{CompanyName}$Value Entry$437dbf0e-84ff-417a-965d-ed2bb9650972$VSIFT$Key14"("Item Ledger Entry Type","Posting Date","Item No_","Inventory Posting Group","Dimension Set ID"); exec sp_rename N'"dbo"."{CompanyName}$Value Entry$437dbf0e-84ff-417a-965d-ed2bb9650972"."$12"', N'$Key13', N'INDEX'; exec sp_rename N'"dbo"."{CompanyName}$Value Entry$437dbf0e-84ff-417a-965d-ed2bb9650972"."$10"', N'$Key11', N'INDEX'; exec sp_rename N'"dbo"."{CompanyName}$Value Entry$437dbf0e-84ff-417a-965d-ed2bb9650972"."$8"', N'$Key9', N'INDEX'; IF (SELECT INDEXPROPERTY(OBJECT_ID(N'"dbo"."{CompanyName}$Value Entry$437dbf0e-84ff-417a-965d-ed2bb9650972"'), N'$Key10', 'IndexId')) IS NOT NULL DROP INDEX "$Key10" ON "dbo"."{CompanyName}$Value Entry$437dbf0e-84ff-417a-965d-ed2bb9650972"; CREATE UNIQUE NONCLUSTERED INDEX "$Key10" ON dbo."{CompanyName}$Value Entry$437dbf0e-84ff-417a-965d-ed2bb9650972" ("Capacity Ledger Entry No_","Entry Type","Entry No_") INCLUDE ("Cost Amount (Actual)","Cost Amount (Actual) (ACY)") WITH (MAXDOP=3); exec sp_rename N'"dbo"."{CompanyName}$Value Entry$437dbf0e-84ff-417a-965d-ed2bb9650972"."$6"', N'$Key7', N'INDEX'..
     
    Haven't gotten around this yet. 
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Stars!

Meet the Microsoft Dynamics 365 Contact Center Champions

We are thrilled to have these Champions in our Community!

Congratulations to the March Top 10 Community Leaders

These are the community rock stars!

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
OussamaSabbouh Profile Picture

OussamaSabbouh 2,005 Super User 2026 Season 1

#2
YUN ZHU Profile Picture

YUN ZHU 1,148 Super User 2026 Season 1

#3
Khushbu Rajvi. Profile Picture

Khushbu Rajvi. 557 Super User 2026 Season 1

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans