A 429 means Microsoft slowed you down on purpose. Throttling rules cannot be disabled and a support ticket will not lift them, so the only levers you hold are timing, batch size and honouring the Retry-After header the service sends back.
What is SharePoint migration throttling?
Throttling is Microsoft limiting how many calls your migration can make in a time window, so one tenant cannot degrade the service for everybody else. It arrives as two status codes and they mean different things.
- 429, too many requests. Your application sent more calls in a window than the limit allows. This is migration throttling in its ordinary form.
- 503, server too busy. The service is handling a temporary load spike and is not ready for your request. Common during heavy uploads.
Neither is a failure of your tool, and neither means your settings are wrong. Both are the service telling you to slow down, and both come with a Retry-After header saying how many seconds to wait.
Blocking sits beyond migration throttling and is rare. Microsoft describes it as the most extreme form, applied only to long term excessive traffic, and notified through the Message Center with instructions to fix the offending process.
Teams treat a 429 like a bug and raise a ticket. It is not a bug. It is a speed limit, and the only thing a ticket changes is how long you wait before accepting that.
Jamie Kaler Marketing Head and Content Strategist, RecoveryTools
Why is migration throttling worse by day?
Because your migration is a background app and the people using SharePoint are not.
Microsoft states it applies tighter migration throttling limits to background apps, naming migration, DLP and backup solutions, during weekday daytime hours, and that those apps should expect limited throughput at those times. Evenings and weekends in your region are when the service is ready to process a higher volume of background requests.
That single paragraph decides your schedule, because migration throttling is tighter at exactly the hours most teams work. A batch that crawls on Wednesday afternoon can finish overnight at several times the rate, with nothing changed except the clock.
Watch the time zone, not the calendar. Off peak is defined by your region. A source tenant in Sydney and a target in Chicago do not share an off peak window, so pick the one that matters for the writes.
What are the published migration throttling limits?
Microsoft publishes the numbers, which is more than most services do. Migration throttling applies at three levels and you can hit any of them.
| Scope | What is counted | Window | Limit |
|---|---|---|---|
| Per user | Requests | 5 minutes | 3,000 |
| Per user | Ingress | 1 hour | 50 GB |
| Per user | Egress | 1 hour | 100 GB |
| Per tenant | Resource units | 5 minutes | 18,750 at 1,000 licences, rising to 93,750 above 50,000 |
| Per app, per tenant | Resource units | 1 minute | 1,250 at 1,000 licences, rising to 6,250 above 50,000 |
| Per app, per tenant | Resource units | 24 hours | 1.2 million at 1,000 licences, rising to 6 million above 50,000 |
| Per app, per tenant | Ingress and egress | 1 hour | 400 GB apiece |
Swipe the table sideways to see every column.
Read the tenant rows twice. Your budget scales with licence count, so a 400 seat organization moving 8 TB is working inside a far smaller allowance than a 20,000 seat one moving the same data. Small tenants with big archives feel migration throttling first, and no setting changes that.
Why do permissions cost five times more than files?
Resource units are not requests. Microsoft prices operations by weight, and the weights are published.
- One unit. A single item query, or downloading a file from a drive item.
- Two units. A multi item query, and every create, update, delete or upload.
- Five units. Any permission resource operation, including an expand on permissions.
So a job that carries access rights spends its tenant budget five times faster per call than one moving files alone. That is the migration throttling arithmetic behind a job that ran fine in a pilot and crawled once permissions were switched on. What travels and what gets dropped is a separate question, answered in how to migrate SharePoint permissions to another tenant.
Version history multiplies the count the same way, because every version is another object to read and write. How much of it you carry, and how much the destination keeps, sits in SharePoint version history migration. One discount is worth knowing. A delta request with a token costs one unit rather than two, even though it is a multi item query, which makes delta with a token the cheapest way to scan content you have already seen.
How fast can a migration actually run?
Microsoft publishes maximum throughput by content type, and the spread is forty to one. Turning those rates into a date is the job of how long does a SharePoint migration take.
| Content | Examples | Maximum per day |
|---|---|---|
| Light metadata | ISO files, video files | 10 TB |
| Medium metadata | List items, Office files around 1.5 MB | 1 TB |
| Heavy metadata | List items with custom columns, files around 50 KB | 250 GB |
Nothing in that table is about your internet connection, and nothing in it changes when migration throttling eases. It is about overhead per object, which is why counting items beats counting gigabytes when you size a window. A library of 2 million 50 KB files and a library holding 40 video files can both read 100 GB and behave nothing alike. Route choice changes the maths again, compared in how to migrate a SharePoint site to another tenant.
Two packaging numbers help as well. Microsoft recommends at least 250 files per transfer and a package between 100 MB and 250 MB, and advises against submitting or queueing more than 5,000 migration jobs at once.
How do you fix a 429 error during migration?
You cannot remove migration throttling, so the work is about spending your allowance well. This order clears most jobs that have stalled.
- Honour Retry-After, and nothing else. SharePoint sends the wait in seconds and works it out dynamically. Microsoft warns that throttled requests still count toward your limits, so retrying early earns more throttling.
- Stop every competing process. OneDrive sync running against the same content while a migration runs is a cause Microsoft names directly. Backup and DLP jobs count too.
- Move the batch to off peak. Evenings and weekends in the region doing the writes, not the region you happen to sit in.
- Cut concurrency rather than content. Fewer parallel streams finishing steadily beats many streams in a retry loop.
- Split oversized batches. Smaller groups started in sequence, with a pause between them, stay under the per minute app limit.
- Check your packages. Thousands of tiny transfers burn resource units on overhead. Aim for the 250 file, 100 MB to 250 MB shape.
- Re-run the failures only. A tool that retries just the failed items spends nothing re-reading what already landed.
If none of that moves the needle, the problem is usually scope rather than speed. A tenant with 400 licences cannot be configured into a 20,000 licence allowance, so the plan stretches instead and migration throttling sets the pace.
Measure item counts before you promise a date
Discovery and read only scanning run without volume limits in trial, so you can count items, file sizes and permission scopes across the estate before spending anything.
No credit card, no sign-up. Runs on Windows 11, 10 and Windows Server.
Our RecoveryTools SharePoint Migrator backs off on a 429 and resumes rather than failing the job, and a delta pass re-runs only what changed. Across several workloads the same handling sits in the Tenant to Tenant Migration Tool.
Does decorating your traffic really help?
Yes, and it costs nothing. Microsoft states that well decorated traffic is prioritised over traffic that is not.
Decoration means your calls carry an AppID, an app title and a user agent string in a documented shape. Software vendors use ISV|CompanyName|AppName/Version. An in house script written by your own team uses NONISV|CompanyName|AppName/Version.
Undecorated traffic is calls with no AppID and no user agent at all, which is what a quick PowerShell script usually sends. The service cannot tell who you are, so it treats you accordingly. Scripting the move yourself carries other costs too, listed in SharePoint Migration Tool limitations.
Two related habits matter. Microsoft asks you not to create separate AppIDs for applications doing essentially the same work, and recommends Graph APIs over CSOM and REST because Graph consumes fewer resources for the same job.
Which migration throttling fixes do not work?
Four migration throttling fixes get tried on every stalled project and none of them helps.
- Raising a support ticket. Microsoft states migration throttling rules cannot be disabled or suspended, and that opening a ticket does not lift throttle.
- A fixed wait of 15 or 30 minutes. Retry-After is calculated per response. A fixed guess either wastes time or retries too early and makes things worse.
- Adding more parallel jobs. It raises the retry rate, not the throughput, and spends resource units on calls that get rejected.
- Buying a faster connection. Migration throttling is an API budget, not a bandwidth one. Bandwidth matters only once you stop hitting limits.
One genuine escalation exists. Migrations above 100 TB need a support ticket raised within 30 days, which is about planning capacity rather than lifting a limit.
Keep a readable copy outside both tenants while a long job runs. Our SharePoint Backup Tool writes one to local or network storage, and the SharePoint Restore Tool puts it back. Teams without the hours for a long throttled window hand it to our cloud migration service.
Frequently asked questions
What does error 429 mean in a SharePoint migration?
It means the calling application sent too many requests inside a time window and passed a published limit. The response carries a Retry-After header giving the seconds to wait. Microsoft warns that throttled requests still count toward your usage, so retrying before that time causes more throttling.
Can SharePoint migration throttling be disabled or lifted?
No. Microsoft states that migration throttling rules cannot be disabled or suspended, and that opening a support ticket does not lift throttle. The levers you hold are timing, concurrency, batch size and traffic decoration.
What is the difference between a 429 and a 503?
A 429 means your application exceeded a request limit. A 503 means the service is temporarily too busy to handle the request, which often appears during heavy uploads. Both are migration throttling and both are handled the same way, by waiting the number of seconds given in Retry-After.
When should you schedule a SharePoint migration?
Evenings and weekends in the region doing the writes. Microsoft applies tighter limits to background apps, including migration, backup and DLP tools, during weekday daytime hours and states those apps should expect limited throughput then.
How much data can a SharePoint migration move in a day?
Up to 10 TB a day for light metadata content like video and ISO files, around 1 TB a day for Office files near 1.5 MB, and about 250 GB a day for small files or list items with custom columns. Item count and file size decide where you land, not bandwidth.
Does migrating permissions make migration throttling worse?
Yes. Microsoft prices a permission operation at five resource units against one for a file download and two for an upload, so a job carrying access rights spends the tenant budget far faster. Cleaning up unique permission scopes at the source before you migrate reduces both the call count and the cost per call.
Where to start this week
Write down three numbers before anybody argues about tools. Licence count, item count and average file size.
Licence count sets your tenant allowance. Item count and file size place you somewhere between 250 GB and 10 TB a day. Those three together give a window you can defend, which is the entire point of understanding migration throttling in the first place. Fold the result into the wider Microsoft 365 migration planning checklist.
Then move the first batch to a Friday night and watch what the same job does with the service on your side.
Published 7 October 2026. Limits and behavior quoted above come from avoid getting throttled or blocked in SharePoint Online and the migration performance guide for SharePoint and OneDrive.