-
Notifications
You must be signed in to change notification settings - Fork 587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
zlib.error: Error -3 while decompressing data: invalid stored block lengths #1063
Comments
Edit: actually, this is happening when I use the |
1.26.1 has a number of fixes for xmp edge cases. See if that matches your case. |
@AndreyNikiforov unfortunately the error still presents in
|
I am also seeing this error with
and got
then on rerun of the same command:
My current assumption is that some icloud metadata for that specific file cannot be handled properly. When I locate the image in question in iCloud, it is an image I've saved from an iPhone app (it was a photo someone sent me via text, that I then edited in "Snapseed" and saved to my camera roll). Actually, let me amend that: There are two images with the exact same name (Using Snapseed, I saved both the original, unmodified image, and then the modified image to my camera roll). Given this, my first instinct would to be suspect some kind of filename collision. If this is correct, then deleting/changing the name of one of the files may allow me to proceed -- let me try that... ah, no, that seems less likely, because when I look at the dir in question, I see:
That implies to me that it's barfing on the initial XMP extraction, and not any kind of duplicate filename problem (I would have expected to see one xmp file if there was a dupe file name issue). Alright, looking at the code in
I'm not very familiar with python, but that looks to me as if the code assumes a compressed format of some sort unless the adjustmentSimpleDataEnc value does NOT start with "Y3JkdA" OR "YnBsaXN0MD". This seems to be a bad assumption? My current theory is we've found a "fourth case" where that value is NOT compressed. I think even if that 4th case is found and handled, one would probably also want to add some exception handling to any code that assumes the returned value is of a particular format but does not/cannot check to make sure that assumption is correct (ie, if the code just runs whatever it gets through some kind of unzip routine, there should be some error handling for cases where that assumption is bad). Unfortunately, I'm not sure if there's an easy way for me to see what the response here is without downloading source + adding some debug info ... which ... I dunno if I want to do right now? It'd be nice if this thing rescued errors and then dumped the value it was trying to parse, I think it would make it easier to solve future problems with the code here. I'll see if I get enough time to snag the source + get it running on my machine so I can dump the info it's blowing up on, but if it's not easy I'll probably just manually remove these photos so my download can complete -- since that's the yak I'm actually trying to deal with: running out of space on my iCloud so I have to backup what I've got there and nuke some photos. By the way, this utility is PERFECT for that use-case, so this a great time for me to express my gratitude and say thank you SO MUCH for developing it, I can tell a TON of work went into it and I am super appreciative of all the time everyone has contributed towards it's development. ❤ Hopefully I can help out a little here if I'm able! (EDIT-ed to add link to the code in question & rephrase a few things to hopefully make them more clear) |
Overview
Downloading photos fails with the following error:
Steps to Reproduce
Seems to fail around the ~1000th photo for me:
Context
icloudpd
Installed with
pip install --user icloudpd
Python
3.13.1
System
The text was updated successfully, but these errors were encountered: