“CRC failed” or “Unexpected end of archive”: the ZIP is damaged or incomplete

The archive lists fine, then extraction dies halfway — or it will not open at all. The ZIP format can tell when its contents do not add up. That message is worth believing.

What those messages actually mean

CRC-32 is a quick integrity check, not encryption and not a signature. It catches accidental damage. It does not prove who made the file, and it is not a malware scan.

How to test without extracting

# Info-ZIP unzip (Linux, macOS, Windows with Git or WSL)
unzip -t archive.zip

# 7-Zip
7z t archive.zip

# Compare with a hash the sender published
sha256sum archive.zip

Paste both hashes into the hash generator if you would rather not use a terminal: same SHA-256 means same bytes. A ZIP that is merely a bit larger than its contents will still pass these tests; a cut-off download will not.

Usual causes, and what to try

Likely causeWhat to try
Download stopped early, or a proxy cut the fileCompare the file size with the size the website advertised. Download again, ideally over a stable connection. Resume only if the server truly supports it.
Email or chat stripped or capped the attachmentMany mail systems reject or silently truncate large ZIPs. Use a file drop the recipient already trusts, or shrink the contents first (for photos, the image compressor).
The disk filled up while the ZIP was being createdThe archive is short. Free some space and build it again.
The file is not a ZIPOpen the first bytes in a hex viewer, or run file archive.zip. A real ZIP starts with PK. Some download pages serve an HTML error page saved with a .zip name.
Transfer in “text” (ASCII) mode on old FTPLine endings got rewritten and every checksum broke. Transfer again as binary.

About repair tools

Some archivers offer a repair mode that tries to read whatever entries are still complete. That can salvage files from the start of a truncated archive; it cannot invent bytes that never arrived. Treat repair as a last resort after a fresh download, and then check the recovered files themselves — a “repaired” picture may still be cut off at the bottom.

A healthy ZIP of photos that simply did not shrink is a different puzzle: zipping photos does not make them smaller.

Related

Lossless vs lossy compression · Why a ZIP can be larger than the originals · gzip vs ZIP · Why zipping photos barely makes them smaller (interactive lesson) · Why zipping photos does not make them smaller · Compress many photos at once · Compress an image without uploading it · Image compressor

Questions

What does CRC failed mean in a ZIP file?

The extracted bytes did not match the CRC-32 checksum stored for that entry. The file was damaged, truncated, or is not the file the archive thinks it is. Other entries in the same ZIP may still extract cleanly.

What does unexpected end of archive mean?

The extractor reached the end of the file before the ZIP said it should. Almost always a partial download or a ZIP that was still being written when the disk filled up.

How do I test a ZIP file without extracting it?

Run unzip -t archive.zip or 7z t archive.zip. Both read every entry and check its CRC. To see whether you have the same file the sender built, compare SHA-256 hashes.

Can I repair a corrupt ZIP?

Sometimes, if the beginning of the archive is intact: repair mode may recover complete entries and give up on the rest. It cannot recreate missing bytes. Re-downloading or rebuilding the archive is the reliable fix.

Does a CRC error mean the ZIP has a virus?

No. It means the bytes do not match the checksum. That is accidental damage or a truncated file, not a malware verdict. A clean checksum also does not mean the contents are safe to run.

Published .

Try it

Related guides

Newest guides