I ran into an issue with my snapshot script when a camera was "online" dashboard showed full connectivity but I got several issues when trying to download the images from a couple of cameras. Either I got 504s (Server timed out) or more often than not a "http.client.IncompleteRead" error.
Turns out there was intermittent connectivity issues but not enough to show the camera offline on the dashboard.
My assumption here is that even though the API returned a 202 and valid URL and that I waited 10 seconds to download from the URL, that the Snapshot was never being fully downloaded by the cloud.
You can work around this by catching the incomplete read, which will cause you to at least download a partial image rather than the script failing.
data = cresponse.read()
except (http.client.IncompleteRead) as e:
data = e.partial