none
Blob Storage GET/HEAD returning 500 Status RRS feed

  • Question

  • We are currently experiencing an issue that seems to be occurring regularly but for random blobs.

    I originally thought that this was related to our CDN (Standard Verizon), as the requests that failed would return a 500 (Internal Server Error) for HEAD requests after 28 seconds.

    I have since stopped our service from returning CDN links, so the links returned to our application are pure BLOB storage links and the same problem is occurring, although the error returned is a 500 (Operation could not be completed within the specified time).

    I can replay the BLOB requests in fiddler and they will then work correctly. I can also retry our application operation and it will eventually finish downloading all of the data files for the operation.

    I have looked here: https://docs.microsoft.com/en-us/rest/api/storageservices/Blob-Service-Error-Codes?redirectedfrom=MSDN but the only 500 status listed doesn't appear to be relevant.

    Any help appreciated.

    Thanks

    Carl

    Friday, May 24, 2019 3:14 PM

All replies

  • Thanks for posting Carl, Can you share the code you are using to download the blobs? Also, are you trying to download a range(multiple blobs at a time) or one random blob at a time ?

    Friday, May 24, 2019 5:45 PM
    Moderator
  • Hi Adam,

    In our client code (NET462), we create a HttpRequestMessage with custom auth headers to perform a GET (or HEAD) to our web service.

    If the auth is successful, our service returns a 302 with the location set to the BLOB url (no SAS token).

    The code that we call is: 

    HttpResponseMessage resp = await _hc.SendAsync(req, HttpCompletionOption.ResponseHeadersRead, cancellationToken);

    And this either returns 403, 200 (or 500, which is a recent feature). We call EnsureSuccessStatusCode on this response, so we don't get any further than this with our current problem.

    For a 200, we then do the following (ignoring the md5 checks etc.):

    using (var fs = File.OpenWrite(workingFileName))
    {
    	await resp.ReadResponseToStreamAsync(fs, ct, requestProgress).ConfigureAwait(false);
    }

    This is just downloading a single BLOB at a time.

    Anything else I can provide, please let me know.

    C

    Friday, May 24, 2019 6:23 PM
  • As an update, this resolved itself over the weekend.

    Would be nice to know what the cause was though.

    Wednesday, May 29, 2019 7:16 AM
  • Hi Carl, There were several storage performance issues last week in different regions. I suspect you may have been impacted by this issue temporarily. I did report this internally to the Product team.

    Thanks,

    Adam

    Wednesday, May 29, 2019 5:55 PM
    Moderator