What limits cause the QuotaExceededException in Azure Notification Hubs

Chris Lamont 11 Reputation points
2020-09-15T18:18:39.297+00:00

I am looking for documentation on an exception I got with Azure Notification Hub. I get the "QuotaExceededException" when requesting the "GetInstallationAsync" endpoint multiple times.

There does not seem to be any documentation and there is a lot of conflicting information on Stack Overflow. Can you direct me to some official documentation or provide an outline of the limitations

I am calling this method about 100 times:
https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.notificationhubs.notificationhubclient.getinstallationasync?view=azure-dotnet

Which then throws this exception:
https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.notificationhubs.messaging.quotaexceededexception?view=azure-dotnet

There is a similar SO question here but it was 5 years ago:
https://stackoverflow.com/questions/28484046/getting-quotaexceededexception-what-are-the-operation-quota-limitations-for-az

In this thread, I think someone from Microsoft answered:
"For my best knowledge for right now NH has following limitations on number of SENDS (not registrations) per namespace per minute per NH machine:
Free tire: 100 Basic tire: 900 Standard tire: 11500"

This is the only information I can really find about the limitations.

fwiw, I am using the Basic ANH plan.

Azure Notification Hubs
Azure Notification Hubs
An Azure service that is used to send push notifications to all major platforms from the cloud or on-premises environments.
319 questions
{count} votes

1 answer

Sort by: Most helpful
  1. ajkuma 26,041 Reputation points Microsoft Employee
    2020-10-16T16:20:18.733+00:00

    To benefit the community, posting the answer here:

    Regardless of tier, the limit for “GetInstallationAsync” is 60 calls/minute per namespace. You could store the installation state locally. Changes to installations can then be made via update and patch operations.

    Given the context of migrating from App Center Push to ANH, the recommendation is to use the new Android/Apple SDKs. The new SDKs will store current installation information on the client device and create/update the server whenever there’s a change, thus avoiding the need to make GET Installation calls.

    Chris performed refactoring and extending a table to avoid throttling issues.

    Thanks Chris for the co-operation!


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.