Copilot Studio Friction

Get notified when this record changes

One email when the status or the fix changes — double opt-in, no tracking, unsubscribe in every email.

Agent stops with GenAIToolPlannerRateLimitReached or another rate-limit error

Mitigatedsince 8 July 2026

Last verified

Details & related

Assessment

Confidence
Confirmed officialConfirmed by Microsoft documentation or an official statement.
Severity
Blocking
Typical time lost
Hours

Identification

OrchestrationAll channels

Verification & changes

  1. 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.

  2. Change

    Provisionally approved by the Product Owner; external LLM quality review pending.

  3. 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 GenAISearchandSummarizeRateLimitReached or OpenAIRateLimitReached.
  • 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 workaround

Identify which meter you hit

  1. Note the exact error code from the failing conversation.
  2. Match it to its feature: planner, search-and-summarize, or the model call.
  3. Check when the errors cluster — time of day, campaign, batch job.
  4. 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 workaround

Distribute the load

  1. List all agents running in the affected environment.
  2. Move high-traffic agents into a separate environment — the throttle counts per environment.
  3. Spread scheduled or batch traffic over time instead of firing it at once.
  4. Retest during your former peak window.

✅ You should now see: the rate-limit errors disappear during the redistributed peak.

Solution 3

Official workaround

Raise your capacity tier

  1. Check your current tier: trial, message packs, or pay-as-you-go.
  2. Review capacity in the Power Platform admin center.
  3. Re-read the documented tier table before you buy (documented as of 2026-07-08).
  4. 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. EnforcementMessage and 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.