Hi Kossi Syed
Thank you for reaching out to Microsoft Q&A forum
By default, Microsoft Teams enforces strict rate limits and throttling policies across its Bot Framework APIs and Microsoft Graph endpoints to maintain service reliability. Under heavy load such as large channels with thousands of members or apps generating high-frequency requests, Teams may delay or drop non-critical events, including bot messages and invoke requests. These behaviors are expected and designed to prevent service degradation. Additionally, certain features (e.g., typing indicators, read receipts) are disabled in very large groups, and message size limits apply to reduce processing overhead.
Regarding your first question: Are there documented constraints about rate-limits or throttling windows for bot messaging, Graph webhook subscriptions, or message extension invoke calls in high-traffic channels?
Yes. Bots and message extensions are subject to per-thread and global rate limits. For example, Bot Framework operations typically allow ~50 requests per second globally and ~1,800 operations per hour per thread. When these thresholds are exceeded, Teams returns HTTP 429 (Too Many Requests) with a Retry-After header. Similarly, Microsoft Graph webhook subscriptions and messaging APIs enforce throttling at multiple scopes (per app, per tenant, per resource type). Exceeding these limits results in delayed or failed requests until retries succeed.
For more information:
https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/rate-limit
https://learn.microsoft.com/en-us/graph/throttling
Regarding your second question: Performance degradation thresholds, such as when Teams stops sending certain events to apps to preserve service stability?
Bases on my research, Teams applies protective measures when channels exceed certain thresholds. Under these conditions, non-essential features are disabled, and real-time delivery of events may be deprioritized. Bulk operations, mass posting, or spikes in event generation can trigger backpressure, resulting in delayed invoke requests and dropped notifications. This is expected behavior under load to maintain overall service health.
For more information:
https://learn.microsoft.com/en-us/microsoftteams/limits-specifications-teams
Hope my answer will help you, for any further concern, kindly let me know in the comment section.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.