Azure Storage Blob error - AnonymousClientOtherError and AnonymousNetworkError (why cannot see images) RRS feed

  • Question

  • I have an mobile app and I put images in Azure Storage Blob. when tested by several of our own people (on test and beta), it is all good.

    But when we released it to beta and had hundreds (maybe above one thousand) of users to use, lots of them report that they cannot see images. It happens on their iPhones and also on many different brands of Android phones. Sometimes, for the same image, on one phone it is good, but on another it doesn't show.

    When I check blob log, I saw a lot of errors, mainly these two:

    1. AnonymousClientOtherError; 304

    "Anonymous request that failed as expected, most commonly a request that failed a specified precondition. The total number of anonymous requests that failed precondition checks (like If- Modified etc.) for GET requests. Examples: Conditional GET requests that fail the check."  (From Microsoft)

    1. AnonymousNetworkError; 200

    "The most common cause of this error is a client disconnecting before a timeout expires in the storage service. You should investigate the code in your client to understand why and when the client disconnects from the storage service. You can also use Wireshark, Microsoft Message Analyzer, or Tcping to investigate network connectivity issues from the client. " (From Microsoft) - a question here, this is an error, but why it is 200?

    I wonder if these are the reasons that caused my problem?

    For the first one, from my understanding, it is not actually an error, it just says that the version client cached is the same as server version. But when my client side sees this response, it thinks it is an error and throw an exception and thus no image is shown? (I actually outsourced my client side, so I can only guess). I later tested with my browser to access these images and found that if I refresh the browser with the same URL of the image, I saw error 304 on the log but I still see the image. So I guess this is not actually a reason for my problem.

    For the second one, is it because my client side's timeout is shorter than the server side's timeout? But is the timeout a connection timeout or a socket timeout? what are the default values on client side and on Azure Blob? Or is it because the network is not good? My Azure server is located in East Asia (Hongkong), but my users are in mainland China. I wonder if that could cause problem? But when a few users tested in China it is all good.

    Many of the images are actually very small,  just one to two hundred k. Some are just 11k.

    I cannot figure out what is the reason...

    Friday, February 13, 2015 6:27 PM