This article explains how to diagnose and resolve performance issues and errors caused by throttling in Microsoft Exchange 2010 (and later) and Microsoft 365 environments.
Symptom
During a migration from an Exchange or Microsoft 365 source, you may experience slow performance or see specific errors in your logs related to EWSMaxConcurrency
. This happens because Exchange has a built-in throttling mechanism to prevent any single user or application from overwhelming the server with too many simultaneous requests. During a data migration, it's common for the migration service account to hit these limits.
Below are the recommended solutions to manage and mitigate throttling for a smooth migration.
Solution for Microsoft 365
For Microsoft 365 tenants, you cannot directly modify throttling policies.
The most effective solution is to ask Microsoft to temporarily relax the throttling rules for your tenant.
-
Open a support ticket with Microsoft 365 Support.
-
Request that the throttling limit for EWSMaxConcurrency and other EWS-related parameters be raised to the highest possible level or removed entirely for the duration of your migration project. Microsoft Support is familiar with this request in the context of data migrations.
Solution for On-Premises Exchange Server
For on-premises environments, the best practice is to create a new, dedicated throttling policy with unlimited access and assign it to your migration service account.
Step 1: Create a New Throttling Policy
Open the Exchange Management Shell and run the following command. This creates a new policy and sets all relevant performance limits to Unlimited
, effectively disabling them.
New-ThrottlingPolicy -Name "CloudMMigrationPolicy" -EWSMaxConcurrency Unlimited -EWSMaxSubscriptions Unlimited -RCAMaxConcurrency Unlimited -EWSMaxBurst Unlimited -EWSRechargeRate Unlimited -CpaMaxConcurrency Unlimited -PowerShellMaxConcurrency Unlimited
Technical Note: We use the value
Unlimited
to explicitly disable the throttling limits. Using$null
would cause the policy to inherit the default (and more restrictive) system limits, which would not resolve the issue.
Step 2: Apply the Policy to the Migration Account
Next, assign this new policy to the administrator account you are using for the migration. Replace "YourAdminAccount"
with the actual username of your service account.
Set-Mailbox -Identity "YourAdminAccount" -ThrottlingPolicy "CloudMMigrationPolicy"
Step 3: Verify the Policy Application
You can confirm the new policy was applied correctly by running this command:
Get-Mailbox "YourAdminAccount" | fl ThrottlingPolicy
The output should display ThrottlingPolicy : CloudMMigrationPolicy
.
Alternative Solution: Configure an Item Export Delay
If you cannot modify the source environment policies or if throttling issues persist, you can slow down the migration tool itself to better respect the server's limits.
-
In your CloudM Migrate project, navigate to Advanced Settings > System.
-
Locate the Item Export Delay setting.
-
Enter a value in milliseconds to create a brief pause between each item the tool exports.
-
Recommendation: Start with a value of
1000
(1 second). If issues continue, increase this to2000
or3000
. This is a trial-and-error process to find the right balance for your environment.
-