Read time: 4 minutes

Summary: This article discusses the process of combining on-premises Exchange Server with Exchange Online in a hybrid deployment. It highlights the onboarding and offboarding processes and provides troubleshooting methods for common migration errors, such as checking migration batch status, verifying accepted domains, ensuring IIS Server settings, and running migration batches via PowerShell. It emphasizes the importance of effective troubleshooting and recommends using dedicated tools like Kernel Migration for Exchange to streamline and secure the migration process.

When combining on-premises Exchange Server with Exchange Online (Microsoft 365), it constitutes a hybrid deployment in which both Exchange environments coexist harmoniously. Within this configuration, administrators have the flexibility to migrate mailboxes seamlessly between on-premises and online instances. However, migration hiccups can occur due to misconfigured settings or insufficient permissions, resulting in random errors throughout the process. Typically, administrators have the option to resolve these issues by deleting a migration batch and initiating a fresh start. Nonetheless, there are troubleshooting techniques available to rectify such errors without the need to delete the batch, enhancing the efficiency of the migration process.

Exchange Server approaches migration within a hybrid environment

Onboarding: The process of transferring on-premises mailboxes to Exchange Online is commonly referred to as “onboarding.”

Offboarding: The process of migrating Exchange Online mailboxes back to on-premises Exchange is referred to as “offboarding.”

How does onboarding start?

In Exchange Admin Center, you can create a new move request for the selected mailboxes.

  1. Open Exchange Admin Center and log in with the admin credentials.
  2. Go to the Migration option, click + icon, and choose ‘Migrate to Exchange Online.’
  3. Follow ‘Select a migration type’>>’ Remote move migration’ and click Next.
  4. Choose the mailboxes that you require to migrate to Exchange Online.
  5. Provide the on-premises Exchange account details on the ‘Enter on-premises account credentials’ page.
  6. Choose an existing migration endpoint in the ‘Confirm the migration endpoint page and ensure that the endpoint is MRS proxy enabled.
  7. Troubleshooting methods for migration errors are tailored to the specific root cause of the issue, and it’s essential to apply them in alignment with the nature of the error you encounter. These errors can manifest during various types of migrations, including Office 365 cutover, staged, or hybrid migrations. Below, we provide some general strategies that can assist you in ensuring a smoother Live Exchange to Office 365 migration process.
How does offboarding start?
  1. Login to Microsoft 365 with your admin account and go to the Admin app.
  2. Open Exchange Admin Center from the Admin list.
  3. Go to the Migration section, click Add (+), and then choose ‘Migrate from Exchange Online.’
  4. Choose the Remote move migration option in the ‘Select a migration type page’ as the migration type.
  5. Choose all the mailboxes that you require to migrate to on-premises Exchange.
  6. The next page is ‘Enter on-premises account credentials,’ where you must input the full name of the on-premises database name.
  7. The ‘Confirm the migration endpoint’ page will ask you to access the endpoint, and it should have MRS Proxy enabled for migration.
  8. Input a name to the migration batch and begin the migration.
How do we troubleshoot the errors in Exchange mailbox migration?

The troubleshooting methods are based on the cause of migration errors, and you should use them in accordance with your type of error. The errors can occur in any kind of migration like Office 365 cutover migration, staged, or even hybrid one. We are giving some general methods that may prove helpful in running a safer Exchange migration.

Method 1: Check the current status of the migration request

Before troubleshooting, you should determine the status of the current migration request.

  1. Connect Windows PowerShell with Exchange Online and run the following cmdlet:
    Get-MigrationBatch |fl *status*,Identity
  2. If the status of the migration batch shows completed, then it is great as the migration is completed successfully.
  3. If the status is queued/suspended/syncing/in-progress or failed, then go to other methods.
Method 2: Check the accepted domains

Sometimes, the domain names of the user in Exchange Online are not accepted by the service, and the migration batch may fail due to such unaccepted domains. You must verify them in the service.

  1. Start Exchange Management Shell and run a special command-
    (Get-Mailbox’ username’).EmailAddresses.
  2. In the resultant list, note down the name of domain names.

  3. Open Windows PowerShell and connect with the Exchange Online account.
  4. Run the cmdlet-
  5. In the new list, check if there are domain names that you took in the first step. If not, then add them with the help of your domain registrar.

Method 3: Make sure that IIS Server is accepting migration

The IIS network server effectively manages migration requests by leveraging traffic handlers such as EWS and Autodiscover. In cases where a migration batch remains in a syncing state for an extended duration, it is advisable to verify the correct mapping of traffic within the IIS server.

  1. In Administrative tools, open IIS Manager.
  2. Follow server name>>sites>>default web site>>EWS.
  3. Open the Handler Mapping option. Look for a specific mapping where the name is ‘svc-integrated,’ path is ‘*svc,’ and State is ‘Enabled.’
  4. Check the same process for Autodiscover virtual directory.
  5. If the values are missing, then in the Exchange System, open the command prompt and change the directory to the given path-
    Drive:\Windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
  6. Input the command-
  7. ServiceModelReg.exe -r

    Input enter and restart the migration batch.

Method 4: Run the migration batch through PowerShell

Executing the migration request via PowerShell yields superior outcomes while also streamlining the process with fewer required steps.

  1. Open Windows PowerShell and connect it with Exchange Online.
  2. In a user-defined variable, input the credentials of your on-premises Exchange Server.
  3. Run the other cmdlet to start the migration batch –
    New-MoveRequest -Identity ‘User’ -Remote -RemoteHostName ‘’ -RemoteCredential $ExchangeCred -TargetDeliveryDomain ‘’


Effective troubleshooting is essential for resolving errors that may arise during the manual migration process between Exchange on-premises and Exchange Online platforms. This endeavor can be time-consuming, potentially leading to detrimental impacts on your databases. To streamline and safeguard your migration, it is highly recommended to employ a dedicated Exchange Migration tool such as Kernel Migration for Exchange. By utilizing this tool, you can create a batch that securely stores source and destination information while benefiting from a plethora of filters and scheduling features. These capabilities not only simplify the migration process but also significantly reduce the likelihood of encountering errors.

Kernel Migration for Exchange