Copilot Studio Friction
Agent stops with GenAIToolPlannerRateLimitReached or another rate-limit error
Last verified
Details & related
Assessment
- Confidence
- Confirmed officialConfirmed by Microsoft documentation or an official statement.
- Severity
- Blocking
- Typical time lost
- Hours
Identification
Verification & changes
Verified
Doc check by human: Throttling troubleshooting page and quotas page re-read during seed migration; all three error codes and the RPM tiers are still documented.
Change
Provisionally approved by the Product Owner; external LLM quality review pending.
Change
Initial record created from the seed dossier (migration wave 1).
Are you in the right place?
- Your agent stops answering with error code
GenAIToolPlannerRateLimitReached. - Or you see
GenAISearchandSummarizeRateLimitReachedorOpenAIRateLimitReached. - The errors appear under load or in bursts and disappear later.
- Classic topics may keep working while generative features fail.
- Nothing about the agent's configuration changed.
If instead the agent says "This agent is currently unavailable. It has reached its usage limit." → see Agent unavailable after reaching its usage limit.
If instead every message in Teams fails with SystemError → see SystemError in Teams.
If instead your credits burn faster than planned → see Credits consumed faster than expected.
What's happening
These three codes are one failure picture: a feature-level throttle. Copilot Studio limits generative features separately from plain message traffic. The limits apply per environment, and each generative feature has its own meter. Your agent can be throttled while orchestrating, while classic topics in the same agent keep running. That contrast makes the problem look like random misbehavior. Picture a motorway with a metered on-ramp: the ramp light can stop you while regular traffic keeps flowing. The generative-AI rate limit is tiered by capacity (documented as of 2026-07-08). Trial and developer environments get 10 requests per minute. One to ten message packs raise it to 50. Pay-as-you-go and Microsoft 365 Copilot users get 100.
For technicians
The throttling page maps the codes to features.
GenAIToolPlannerRateLimitReached covers planning by generative orchestration.
Documented text: "The usage limit for generative orchestration has been reached."
GenAISearchandSummarizeRateLimitReached covers generative answers.
OpenAIRateLimitReached covers the model calls behind them.
Quotas bind to the Dataverse environment, not to the agent.
The separate plain-message limit is 8,000 requests per minute per environment (documented as of 2026-07-08).
EnforcementMessage is a different mechanism: credit overage, not a feature throttle.
How to fix it
Solution 1
Official workaroundIdentify which meter you hit
- Note the exact error code from the failing conversation.
- Match it to its feature: planner, search-and-summarize, or the model call.
- Check when the errors cluster — time of day, campaign, batch job.
- Compare that burst against your tier's requests-per-minute limit.
✅ You should now see: which feature exceeds which limit, and when.
Solution 2
Official workaroundDistribute the load
- List all agents running in the affected environment.
- Move high-traffic agents into a separate environment — the throttle counts per environment.
- Spread scheduled or batch traffic over time instead of firing it at once.
- Retest during your former peak window.
✅ You should now see: the rate-limit errors disappear during the redistributed peak.
Solution 3
Official workaroundRaise your capacity tier
- Check your current tier: trial, message packs, or pay-as-you-go.
- Review capacity in the Power Platform admin center.
- Re-read the documented tier table before you buy (documented as of 2026-07-08).
- Add message packs or enable pay-as-you-go to reach a higher requests-per-minute tier.
✅ You should now see: a higher generative-AI rate limit for the environment.
Check that it worked
Replay the load that triggered the throttle — same volume, same time window, in the published channel. Expected: no rate-limit codes appear, and generative features answer throughout the burst.
If it didn't work
- The burst is bigger than any tier. Above every tier sits a per-environment budget. Queue the traffic or split it across environments.
- You fixed the wrong meter. Three codes, three features. Re-read the code; a planner fix does not raise the search-and-summarize limit.
- Something else consumes the environment's budget. Other agents and makers in the same environment share the quota. Audit who else runs there.
- Credits ran out instead.
EnforcementMessageand the usage-limit banner are a different problem. See Agent unavailable after reaching its usage limit.
Prevent it next time
- Put the requests-per-minute tiers into your capacity planning before launch, not after the first throttle.
- Give high-traffic agents their own environment from day one.
Evidence
Official documentationlearn.microsoft.com
The throttling troubleshooting page documents GenAIToolPlannerRateLimitReached, GenAISearchandSummarizeRateLimitReached and OpenAIRateLimitReached as feature-level throttles per environment.
Official documentationlearn.microsoft.com
The quotas page tiers the generative-AI message rate limit by capacity, from 10 RPM in trial to 100 RPM for pay-as-you-go or M365 Copilot users.