Learn how to troubleshoot and resolve common issues that may occur when migrating public folders from Exchange Server to Exchange Online.
Public folders are a feature of Exchange Server that allow users to share and access information in a hierarchical folder structure. Public folders can store various types of data, such as emails, calendars, contacts, tasks, and notes. Public folders can also be mail-enabled, which means they can receive and send messages from external sources.
Migrating public folders from Exchange Server to Exchange Online is a complex process that involves several steps and prerequisites. Sometimes, you may encounter errors or issues during or after the migration, such as public folders not receiving external emails, public folders showing as unavailable, or public folder migration batch not completing. In this article, we will explain some of the common causes and solutions for these problems, and provide some useful references and resources to help you with your public folder migration.
Table of Contents
- Public folders not receiving external emails
- Cause
- Solution
- Public folders showing as unavailable
- Cause
- Solution
- Public folder migration batch not completing
- Cause
- Solution
- Frequently Asked Questions (FAQs)
- Question: How long does it take to migrate public folders to Exchange Online?
- Question: How can I monitor the progress of the public folder migration?
- Question: How can I test the public folder migration before finalizing it?
- Summary
Public folders not receiving external emails
One of the issues that you may face after migrating public folders to Exchange Online is that public folders are not receiving emails from external sources, such as other domains or internet addresses. The emails are stuck in the Exchange Server queue with the error message “public folder unavailable due to ongoing migration”. This may happen even if the public folder migration batch is marked as completed in the Get-OrganizationConfig cmdlet output.
Cause
This issue may occur if the public folder mailboxes in Exchange Online are not synchronized with the public folder hierarchy in Exchange Server. This can happen if the public folder migration batch is not finalized, or if the public folder mailboxes are modified or deleted after the migration.
Solution
To resolve this issue, you need to synchronize the public folder mailboxes in Exchange Online with the public folder hierarchy in Exchange Server. To do this, you need to run the following PowerShell cmdlets in Exchange Online PowerShell:
To get the name of the public folder migration batch, run:
Get-MigrationBatch | Where-Object {$_.SourceEndpoint -like "*PublicFolder*"}
To finalize the public folder migration batch, run:
Complete-MigrationBatch -Identity <BatchName>
Replace <BatchName> with the name of the public folder migration batch that you obtained from the previous cmdlet.
To synchronize the public folder mailboxes, run:
Sync-MailPublicFolders.ps1
This script will update the MailPublicFolder objects in Active Directory with the information from Exchange Online.
After running these cmdlets, you should be able to receive external emails in your public folders.
Another issue that you may encounter during or after the public folder migration is that public folders are showing as unavailable or inaccessible in Outlook or Outlook on the web. You may see error messages such as “Cannot expand the folder” or “The operation failed”. This may happen even if the public folder migration batch is marked as synced or completed.
Cause
This issue may occur if there are conflicts or duplicates in the public folder mailboxes or objects. This can happen if there are soft-deleted public folder mailboxes that have the same names as active mailboxes, or if there are orphaned CNF (conflict) objects in the public folder hierarchy.
Solution
To resolve this issue, you need to remove the conflicting or duplicate public folder mailboxes or objects. To do this, you need to run the following PowerShell cmdlets in Exchange Online PowerShell:
To find and remove soft-deleted public folder mailboxes that have the same names as active mailboxes, run:
Get-Recipient -IncludeSoftDeletedRecipients -RecipientTypeDetails PublicFolderMailbox | Where-Object {$_.OrganizationalUnit -like "*Soft Deleted Objects*"} | Remove-Mailbox -PermanentlyDelete
This cmdlet will permanently delete the soft-deleted public folder mailboxes that match the names of the active mailboxes.
To find and remove orphaned CNF objects in the public folder hierarchy, run:
Get-PublicFolder -Recurse -ResultSize Unlimited | Where-Object {$_.Name -like "*CNF:*"} | Remove-PublicFolder -Recurse -Confirm:$false
This cmdlet will recursively delete the public folders that have CNF in their names, which indicate that they are conflict objects.
After running these cmdlets, you should be able to access your public folders.
Public folder migration batch not completing
A third issue that you may face when migrating public folders to Exchange Online is that the public folder migration batch is not completing or finalizing. You may see the status of the migration batch as Synced, but not Completed. You may also see error messages such as “An item with the same key has already been added” or “Multiple mailbox users match identity”.
Cause
This issue may occur if there are errors or inconsistencies in the public folder migration endpoint or the public folder mailbox migration requests. This can happen if the public folder migration endpoint is not created correctly, or if the public folder mailbox migration requests are not synced or cleared.
Solution
To resolve this issue, you need to fix the public folder migration endpoint and the public folder mailbox migration requests. To do this, you need to run the following PowerShell cmdlets in Exchange Online PowerShell:
To check the status of the public folder migration batch and the public folder mailbox migration requests, run:
Get-MigrationBatch -Identity <BatchName> | Format-List
Get-MigrationUser -BatchId <BatchName> | Format-List
Replace <BatchName> with the name of the public folder migration batch that you obtained from the Get-MigrationBatch cmdlet.
To remove and recreate the public folder migration endpoint, run:
Remove-MigrationEndpoint -Identity <EndpointName>
New-MigrationEndpoint -PublicFolder -Name <EndpointName> -RPCProxyServer <RPCProxyServer> -Credentials (Get-Credential) -SourceMailboxLegacyDN <SourceMailboxLegacyDN> -PublicFolderDatabaseServerLegacyDN <PublicFolderDatabaseServerLegacyDN>
Replace <EndpointName> with the name of the public folder migration endpoint that you obtained from the Get-MigrationEndpoint cmdlet. Replace <RPCProxyServer> with the RPC proxy server of your Exchange Server, such as mail.contoso.com. Replace <SourceMailboxLegacyDN> with the legacy distinguished name of the primary public folder mailbox on your Exchange Server, such as /o=Contoso/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=PrimaryPublicFolderMailbox. Replace <PublicFolderDatabaseServerLegacyDN> with the legacy distinguished name of the Exchange Server that hosts the public folder database, such as /o=Contoso/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=EXCH01.
To clear and resubmit the public folder mailbox migration requests, run:
Get-MigrationUser -BatchId <BatchName> | Remove-MigrationUser -Force
Get-MigrationBatch -Identity <BatchName> | Start-MigrationBatch
Replace <BatchName> with the name of the public folder migration batch that you obtained from the Get-MigrationBatch cmdlet.
After running these cmdlets, you should be able to complete or finalize the public folder migration batch.
Frequently Asked Questions (FAQs)
Question: How long does it take to migrate public folders to Exchange Online?
Answer: The duration of the public folder migration depends on several factors, such as the size and number of public folders, the network bandwidth, and the performance of the Exchange servers. Generally, it may take from several hours to several days to complete the migration.
Question: How can I monitor the progress of the public folder migration?
Answer: You can use the Exchange admin center or the Exchange Online PowerShell to monitor the status and statistics of the public folder migration batch and the public folder mailbox migration requests. You can also use the migration reports to view the details and errors of the migration.
Question: How can I test the public folder migration before finalizing it?
Answer: You can use the Test-MigrationServerAvailability cmdlet to verify the connectivity and configuration of the public folder migration endpoint. You can also use the Test-MigrationBatch cmdlet to validate the public folder migration batch and the public folder mailbox migration requests.
Summary
In this article, we have discussed some of the common issues and solutions for public folder migration from Exchange Server to Exchange Online. We have explained how to troubleshoot and resolve the following problems:
- Public folders not receiving external emails
- Public folders showing as unavailable
- Public folder migration batch not completing
We have also provided some useful references and resources to help you with your public folder migration. We hope that this article has been helpful and informative for you.
Disclaimer: This article is provided for informational purposes only and is not intended to replace the official documentation or guidance from Microsoft. You should always follow the best practices and recommendations from Microsoft when migrating public folders to Exchange Online. You should also test the migration in a lab environment before applying it to your production environment. You are responsible for any actions or consequences that may result from following this article.