1

I`m working on creating subscriptions using Microsoft Graph API. From (documentation)[https://learn.microsoft.com/en-us/graph/webhooks] we see next quotas: Maximum subscription quotas:

  • Per app (for all tenants combined): 50,000 total subscriptions
  • Per tenant (for all applications combined): 1000 total subscriptions across all apps
  • Per app and tenant combination: 100 total subscriptions

But per app and tenant combination for user I was able to create 1000 subscriptions (/users/{id}/mailFolders('inbox')/messages) using daemon application token. And then I received exception:

**Operation: Create; 
Exception: [Status Code: 429; Reason: Resource 'SubscriptionCountReached' has reached limit of '1000'.  
Please retry after '12/31/9999 11:59:59 PM'].** 

By documentation expected status code is 403 Forbidden.
I didn’t find any additional info about this limitation in documentation. Can you please help me to understand this restrictions? Also I was able to create 1000 subscriptions for another user under this tenant and application. How many subscriptions I can create for any users in general per app and tenant combined? what is a total amount of subscriptions which I can create per app and tenant? Thanks

DuDa
  • 3,718
  • 4
  • 16
  • 36

1 Answers1

0

When throttling occurs, Microsoft Graph returns HTTP status code 429 (Too many requests), and the requests fail. Throttling behavior can depend on the type and number of requests.

Please refer this link for details on best practices to handle throttling.

You can refer this link for more details of throttling requests

Dinakar J
  • 76
  • 2
  • Thanks! I made 1000 call during 40 minutes (30 call in a row and then 1 minute sleep), And exception message ('Please retry after '12/31/9999 11:59:59 PM') means that I will be not able to create subscription anymore? So this looks like not throttling but like subscription limit without retrying after some time – Jorgio de la Morena Dec 30 '20 at 11:18
  • Share the detailed exception that you received, along with the requestid, timestamp!! – Dev Jan 12 '21 at 19:09