I am re-asking this question under a new, specific hypothesis. If this is the answer I will update/collapse/merge both.
Could AT&T throttling the data usage of a subscriber explain an image that looked like this when loaded by our iOS app:
Originally I thought maybe there was a discrepancy between the content-length header and the actual content sent back. I have simulated the case where a server sends back a body shorter than the reported content length and my client does not behave in this fashion; instead the client waits for 60 seconds and then fails to load the image. That is a fine outcome.
The consequences of this issue here is that my client believes that it has successfully downloaded the image and is caching it, never to redownload again, causing all subsequent views of the image to have the incorrect gray area.
The user who saw this image was running on AT&T 4G, HSPA+, and was very near his max. AT&T sent him a text saying they are throttling him.
Note that the server that served up this image is amazon S3; the client had connected directly to S3 to fetch the image.
If anyone could discuss what happens when AT&T reports that they are throttling a data connection I would be most appreciative!