title: "Storage account management operations" and ClientThrottlingError
body: <p>According to <a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-scalability-targets#storage-account-scale-limits" rel="nofollow noreferrer">Storage account scale limits</a> each storage account in Azure can handle 20.000 requests per second.</p>
  <p>But there is also <a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-scalability-targets#storage-resource-provider-scale-limits" rel="nofollow noreferrer">Storage resource provider scale limits</a> that restricts <em>Storage account management operations (read)</em> to 800 request per 5 minutes.</p>
  <p>We seem to have reached the latter limit, and we are wondering what kind of operations are counted as <em>Storage account management operations</em>. We got a few minutes with intermittent 503 responses in our production system this morning, having 2600 GetBlob operations in 5 minutes.</p>
  <ul>
  <li>Which operations count as <em>Storage account management operations</em>?</li>
  <li>Does it matter whether we use BlobClient from the blob storage SDK, or HttpClient from .NET?</li>
  <li>How do we read blob properties and metadata, and download blobs to (possibly) achieve 20.000 requests per second?</li>
  <li>Are there any other ideas on what can lead to throttling when the load isn't that high altogether?</li>
  </ul>
  <hr />
  <p><strong>UPDATE:</strong></p>
  <p>After communication with Microsoft support (the proper ones...), they could inform us of the following:</p>
  <blockquote>
  <p>The type of throttling you experienced is a partition throttling error. This type of error occurs when the client does too many requests against the same partition server. When such happens and the partition server gets overloaded, it does internal load balancing operations as part of the normal azure storage healing process.</p>
  <p>When the partition being accessed suffers a load balancing operation (reassigning partitions to less loaded servers), the storage service returns 500 or 503 errors.</p>
  <p>The limits I previously mentioned (the 800 reads for 5 minutes) are indeed for management operations and not for data ones. In your case, the GetBlob ones are data operations and are not covered by these hard limits. After analyzing the ingress/egress limit and also the transactions per second of your storage account, I verified that you also seem to be far away from hitting the threshold.</p>
  </blockquote>
  <p>Just for the record and improved searchability: In Metrics these errors showed up as <code>ClientOtherError</code> and <code>ClientThrottlingError</code>.</p>