How to Fix Microsoft Graph 429: Too many requests (throttled)
Error message
Response status code does not indicate success: 429 (Too Many Requests). x-ms-throttle-information present.
If you're seeing "Microsoft Graph 429: Too many requests (throttled)", you're not alone. Here's what it means, why it happens, and the steps to resolve it.
What this error means
Microsoft Graph rate-limited your client. You sent more requests than the service allows for that resource in the current window, so it told you to back off.
Why this happens
Tight loops without paging, parallelism that's too high, repeatedly listing large collections, or many tenants/users sharing the same throttling bucket.
Step-by-step fix
Honor the `Retry-After` header. Wait that many seconds before retrying.
command$resp.Headers['Retry-After']Switch list operations to use server-side paging instead of `-All` on huge collections.
commandGet-MgUser -Top 100 -PageSize 100Add exponential backoff with jitter when handling 429s in your code.
Use `$select` to ask for only the fields you need, and `$filter` to narrow results, so each call is cheaper.
Affected products
Microsoft Graph PowerShell
Still broken? Try these
- Distribute work across time — running 50 batch jobs at the top of the hour will hit limits.
- If you control many tenants, consider per-tenant queues so one tenant doesn't starve the rest.
- Review Microsoft's published Graph throttling guidance for the specific resource you're hitting (mail, groups, etc. all have different limits).
Related errors
Frequently asked questions
What does "Microsoft Graph 429: Too many requests (throttled)" mean?
Microsoft Graph rate-limited your client. You sent more requests than the service allows for that resource in the current window, so it told you to back off.
What causes "Microsoft Graph 429: Too many requests (throttled)"?
Tight loops without paging, parallelism that's too high, repeatedly listing large collections, or many tenants/users sharing the same throttling bucket.
How do I fix "Microsoft Graph 429: Too many requests (throttled)"?
1. Honor the `Retry-After` header. Wait that many seconds before retrying. 2. Switch list operations to use server-side paging instead of `-All` on huge collections. 3. Add exponential backoff with jitter when handling 429s in your code. 4. Use `$select` to ask for only the fields you need, and `$filter` to narrow results, so each call is cheaper. Always test changes in a non-production environment first.
Browse more errors in Microsoft Graph PowerShell: Fix Microsoft Graph PowerShell errors. Insufficient privileges, invalid object ID, missing cmdlets, token problems, and more. Or paste your own error into the error decoder tool to find a match. You can also go back to the homepage to browse common errors by topic.