Troubleshooting
Fix Office 365 Migration Throttling Errors Fast
Office 365 migration throttling stalls batches at 5GB/mailbox/hour. Find the policy hitting you and the operator-side workarounds that actually unblock the job.
Priya Shah
Senior Systems Engineer
You started a migration into Office 365, the first hour ran fast, and now every batch is stalling. The log is full of HTTP 429 Too Many Requests and ErrorServerBusy responses from outlook.office365.com. Throughput has dropped from 3GB per hour per mailbox to under 200MB. This is Office 365 migration throttling — Microsoft's deliberate brake on EWS, MRS, and Graph traffic — and the fix is not "run it again". It's identifying which of three policies is firing and adjusting the migration shape accordingly.
Skip the manual setup — let Mailbox Taxi handle it
One desktop app, every IMAP provider, zero data leaving your machine.
Real errors you'll see
HTTP 429 Too Many Requests with a Retry-After header in seconds, ErrorServerBusy: The server cannot service this request right now, or for MRS-based jobs, MapiExceptionServerThrottling. All three mean Microsoft has slowed your connection on purpose, not that the network is broken.
Why Office 365 throttles your migration
Microsoft applies three layers of throttling to every tenant. They stack — a request can be slowed by all three at once — and the migration log usually doesn't tell you which layer hit first. Knowing the difference saves hours.
Per-user EWS throttling policy
Every mailbox has an attached throttling policy that caps EWS and EWS-impersonation traffic. The defaults allow roughly 2GB per hour of message data per mailbox, with stricter limits on findfolder and findfolderhierarchy calls. When a single account exceeds them, the EWS endpoint returns ErrorServerBusy with a back-off in milliseconds and that mailbox stalls. Other mailboxes in the same batch keep moving, which is why the symptom looks like "one account is slow."
Tenant-level connection caps
Underneath the per-user policy, the tenant has a connection cap that's usually invisible until you push past it. For most commercial tenants it sits in the range of 20–40 concurrent migration sessions, after which new sessions are queued and pre-existing ones are slowed. If every mailbox in your batch slows down at the same moment, this is the layer that fired. Operator-side, the fix is to cut concurrency in your migration tool — not to throw more workers at the problem. Our IMAP throttling errors page covers the same logic for IMAP sources.
The hot mailbox flag
Microsoft maintains an automated "hot mailbox" flag that gets set when a single account does sustained EWS work for more than about 30 minutes. Once set, the throttling policy on that mailbox tightens for 24 hours and you cannot turn it off. Restarting the migration does nothing. The only fix is to pause that mailbox, let the flag clear overnight, and re-add it to the batch the next day. This is the most common reason a migration that ran fine for ten mailboxes suddenly stalls on the eleventh.
If you're working a tenant-to-tenant move, the same three layers apply on both ends. The Exchange to Office 365 pair guide covers the source-side throttling that often gets overlooked, and the Office 365 migration guide walks through the full project shape.
Skip the manual setup — let Mailbox Taxi handle it
One desktop app, every IMAP provider, zero data leaving your machine.
Fixing throttling — step by step
Identify which throttle is firing
Open the migration log and search for
429andErrorServerBusy. If the back-off is on one mailbox only, it's per-user throttling or the hot mailbox flag. If every mailbox slows at once, it's tenant-level. The migration tool's per-mailbox throughput chart usually makes this obvious within five minutes.Drop mailbox concurrency to 10 or fewer
In your migration tool, find the simultaneous-mailbox setting and lower it to 10. Many tools default to 20 or higher, which guarantees you'll hit the tenant cap. Counterintuitively, fewer concurrent connections moves more data per hour because none of them get throttled.
Move large mailboxes to their own batch
Any mailbox over 20GB should run in a batch by itself, queued after the small accounts complete. Large mailboxes are the most likely to trip the hot-mailbox flag, and isolating them means a flag on one doesn't slow the others.
Honour the Retry-After header
Confirm your migration tool reads the
Retry-Aftervalue on 429 responses and sleeps for at least that long. Tools that retry immediately make throttling worse by extending the back-off window. Mailbox Taxi defaults to honouring the header plus a 10 percent buffer.Pause hot mailboxes for 24 hours
If a specific mailbox has been throttled for over an hour with no improvement, remove it from the current batch. The hot-mailbox flag will clear automatically within 24 hours. Re-add the mailbox to a later batch and it should move at full speed.
Open a throttle-uplift ticket if you're moving more than 500 mailboxes
For migrations above roughly 500 mailboxes, Microsoft will often grant a temporary throttling policy uplift if you ask 5–7 business days before the migration window. Open a Microsoft 365 support ticket, state the mailbox count, source platform, and target window, and ask for an EWS throttling policy uplift for the duration.
Preventing throttling on the next batch
Throttling is a budget, not a wall. You spend it on every API call, and the budget refills slowly. Plan the migration the way you'd plan a download over a metered connection: small steady streams, not bursts. Schedule large mailboxes after small ones, not before. Migrate during off-hours where you can — not because Microsoft loosens the policy, but because background tenant load is lower and your share of the connection cap is larger.
Sanity-check your tool's defaults before the cutover. Many migration tools ship with concurrency settings tuned for a five-mailbox demo, not a 500-mailbox project. If the defaults look ambitious, halve them.
Tip
For tenant-to-tenant moves where you control both ends, ask the source admin to apply a relaxed throttling policy via PowerShell for the migration window. The New-ThrottlingPolicy cmdlet lets you raise EWS limits for the specific service account doing the work. Revert after the cutover.
FAQ
For the wider picture on what else can stall an in-flight job, the email migration troubleshooting hub is the index.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.
Related reading
troubleshooting
Fixing IMAP Throttling Errors During Migration
Resolve IMAP throttling error messages during email migration with concrete connection limits, backoff settings, and provider-specific fixes that keep transfers moving.
troubleshooting
Fix "Too Many Simultaneous Connections" IMAP Error
Too many simultaneous connections IMAP errors cap your migration at the source. Diagnose the per-account limit and clear stale sessions in under ten minutes.
blog
Office 365 Migration: The Definitive Playbook
A complete office 365 migration playbook for IT admins: discovery, batching, throttling, modern auth, cutover vs staged vs hybrid, and validation.
migrate
How to Migrate Exchange to Office 365
Pick between cutover, staged, and hybrid for your Exchange to Office 365 move, with throttling, public folder, and Autodiscover specifics.
blog
Email Migration Troubleshooting: The Complete Reference
Email migration troubleshooting reference covering auth, throttling, integrity, permissions, network and DNS — diagnostic order and safe retry strategies.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.