When you use Copilot in Microsoft 365 apps, you may see a 429 error with the message Too Many Requests. This error stops Copilot from generating responses, summarizing documents, or answering questions. The cause is hitting a rate limit enforced by Microsoft to protect service stability. This article explains why the 429 error occurs and provides step-by-step instructions to resolve it.
Key Takeaways: Fixing the Copilot 429 Rate Limit Error
- Microsoft 365 admin center > Copilot > Rate limits: Check your tenant’s current rate limit configuration and usage metrics.
- Retry-After response header: Wait the number of seconds specified in this header before sending another request.
- Azure API Management > Policies > Rate limit: Adjust per-user or per-IP rate limits if you use custom Copilot integrations.
Why Copilot Returns a 429 Rate Limit Error
The 429 error is an HTTP status code meaning the client has sent too many requests in a given time window. Microsoft enforces rate limits on Copilot APIs to prevent abuse, ensure fair usage, and maintain service performance. The limits apply to both the built-in Copilot in Microsoft 365 apps and custom integrations built on Copilot Studio or Azure OpenAI Service.
Rate Limit Scope
Rate limits are calculated per user, per app, and per tenant. A single user running multiple Copilot sessions simultaneously can trigger the limit. Similarly, an organization with many users all sending requests in a short period may hit the tenant-level cap.
Default Rate Limit Values
Microsoft does not publish exact numbers because limits vary by license plan and region. In most Microsoft 365 E3 or E5 tenants, the default limit is approximately 600 requests per user per minute. Copilot Pro subscribers see a lower limit of about 300 requests per user per minute. Custom integrations using Azure OpenAI have separate quotas defined in the Azure portal.
Steps to Resolve the Copilot 429 Error
Step 1: Wait and Retry Automatically
- Check the Retry-After header
When Copilot returns a 429 error, the response includes a Retry-After header with a number of seconds. Wait that exact duration before sending the next request. Most Microsoft 365 apps handle this automatically, but custom code must read the header. - Use exponential backoff in custom integrations
If you built a custom Copilot using Copilot Studio or Azure OpenAI, implement exponential backoff. Start with a 1-second delay, then double the wait time after each consecutive 429 response up to a maximum of 60 seconds.
Step 2: Review and Adjust Tenant Rate Limits
- Open the Microsoft 365 admin center
Go to https://admin.microsoft.com and sign in with a Global Admin or Billing Admin account. - Navigate to Copilot settings
Select Settings > Org settings > Copilot. Look for the Rate limits section. Here you can view current usage metrics and the configured limit per user. - Increase the limit if available
If your tenant has a high-usage license add-on, you may see an option to raise the per-user limit. Click Edit and select a higher tier. Save the change and wait 5 minutes for it to take effect.
Step 3: Reduce Request Frequency in Client Apps
- Close unused Copilot sessions
Each tab or app instance running Copilot counts toward the user limit. Close Copilot panes in Word, Excel, and Outlook when not actively using them. - Batch requests in custom applications
If you call Copilot APIs from a custom app, combine multiple prompts into a single request using the messages array. This reduces the total number of API calls. - Space out automated tasks
Schedule bulk Copilot operations, like summarizing a library of documents, to run at least 10 seconds apart. Use a queue system to enforce delays.
Step 4: Monitor Rate Limit Usage
- Use Microsoft 365 usage reports
In the admin center, go to Reports > Usage > Copilot usage. This report shows the number of requests per user and per app. Identify users or apps that exceed the limit. - Enable Azure Monitor for Copilot Studio
If you use Copilot Studio, integrate Azure Monitor to track API call volumes. Set up alerts when request counts approach 80% of the limit.
If Copilot Still Returns 429 After These Steps
Copilot 429 Error Persists Despite Waiting
If the error continues after waiting the Retry-After duration, the rate limit may be applied at the tenant level rather than per user. Contact Microsoft support to request a temporary limit increase. Provide the exact time range and number of requests that caused the error.
Custom Integration Returns 429 While Built-in Copilot Works
This indicates your custom code is not respecting the retry logic. Review your API client implementation. Ensure it reads the Retry-After header and waits the specified seconds. Also check that you are not reusing the same API key across multiple threads without a semaphore.
429 Error in Copilot Studio Web App
If the Copilot Studio web interface shows a 429 error, it means the tenant has reached its per-minute request cap. Reduce the number of concurrent testers. Go to Copilot Studio > Settings > General > Rate limit and lower the max requests per conversation.
Built-in Copilot vs Custom Integration Rate Limits
| Item | Built-in Copilot in Microsoft 365 | Custom Integration via Azure OpenAI |
|---|---|---|
| Rate limit scope | Per user and per tenant | Per API key and per deployment |
| Default limit | 600 requests per user per minute | Varies by Azure subscription tier |
| Retry mechanism | Automatic with exponential backoff | Must be implemented in code |
| Limit adjustment | Via Microsoft 365 admin center | Via Azure portal > Quotas |
After resolving the 429 error, you can use Copilot without interruptions. To prevent future rate limit errors, monitor usage reports weekly and set up Azure Monitor alerts. For custom integrations, always implement exponential backoff with Retry-After header parsing. This ensures your application handles rate limits gracefully even if Microsoft adjusts thresholds.