Troubleshooting

In this article

Product version mismatch

Integration runtime failing

To troubleshoot problems that you may experience with the cloud migration of LS Central SaaS, refer to the Microsoft documentation in Troubleshooting Cloud Migration.

Below are some additional troubleshooting tips.

Product version mismatch

Error

The version of the on-premises deployment does not match the requirements of Business Central online:

Solution

Official documentation: 

If you have tried to select both Dynamics 365 Business Central current version (v.xx) and Dynamics 365 Business Central earlier version on the Product Selection page, then check the applicationversion field on [$ndo$tenantdatabaseproperty], [$ndo$tenantdatabaseversion] and [$ndo$tenantproperty tables, in your local SQL database. The version should match.

If, for some reason, the application version is empty or does not match the current database version, you can fix the version on these tables by running the PowerShell script below:

Note: Replace the bcInstanceName and applicationVersion variable values with the correct Server Instance name and version. For the Application Version you can enter just the major and minor number.

Copy
Import-Module "C:\Program Files\Microsoft Dynamics 365 Business Central\220\Service\Management\Microsoft.Dynamics.Nav.Management.dll"
$bcInstanceName = "LSCentral"
$applicationVersion = "22.2"
 
Set-NAVApplication -ServerInstance $bcInstanceName -ApplicationVersion "$applicationVersion.0.0" -Force
Sync-NAVTenant -ServerInstance $bcInstanceName -Mode Sync -Tenant default 
Start-NAVDataUpgrade -ServerInstance $bcInstanceName -FunctionExecutionMode Serial -Tenant default

Run the following SQL script to retrieve the content for these tables:

Copy
USE [<database name>]
SELECT * FROM [dbo].[$ndo$tenantdatabaseproperty]
SELECT * FROM [dbo].[$ndo$tenantdatabaseversion]
SELECT * FROM [dbo].[$ndo$tenantproperty]

The Application Version must not be empty and should match the version on the on-premises environment. Due to some issues in a previous upgrade, the Application Version can be pointing to an earlier version number and needs to be updated.

Note: Table [$ndo$tenantdatabaseversion] should have one single row with the correct version, so delete any additional rows that might exist.

Integration runtime failing

Error

The Microsoft Integration Runtime (IR) is a component that is used during the migration process to move the data from the on-premises SQL Server to the Business Central Online environment.

When the Integration Runtime is set up, during the Cloud Migration Setup, an Azure Data Factory infrastructure is created automatically to handle the data migration process.

Once in a while, Microsoft clears unused Azure Data Factory environments and that is one of the reasons why your Integration Runtime components might go into a failing state.

Example:

Solution

To fix this issue you can:

  1. Uninstall and reinstall the Microsoft Integration Runtime.
  2. Manually reset and register the Microsoft Integration Runtime running the following steps:
    1. Open PowerShell console as an administrator.
    2. Go to "C:\Program Files\Microsoft Integration Runtime\5.0\PowerShellScript".
    3. Run the following in the console:

      .\RegisterIntegrationRuntime.ps1 -gatewayKey $gatewayKey -NodeName $NodeName

      • $gatewayKey is the registration (authentication) key of the new ADF resource you want to register the IR with. The key becomes available when you run the Cloud Migration Setup:

      • $NodeName is the name that will appear in ADF when it is registered. This is typically populated with the machine name hosting the IR.
      • $IsRegisteringOnRemoteMachine can be left as it is by default, false, if you are running this script from the machine hosting the IR.

Example:

cd "C:\Program Files\Microsoft Integration Runtime\5.0\PowerShellScript"

 

$gatewayKey = 'IR@2d18dbe4-33ae-4b41-8000-c42fdd0adb76xxxxxxxxxxxxxxxxxx'

$NodeName = 'DESKTOP-8E53JB2'

 

.\RegisterIntegrationRuntime.ps1 -gatewayKey $gatewayKey -NodeName $NodeName