ZIP file is corrupt: "unexpected end of archive", "invalid or corrupt zip", "headers error"
Last reviewed 2026-09-19
A ZIP stores an index (the central directory) at the very end of the file. When a download is interrupted, that index is missing and most programs refuse the archive, although every file stored before the cut may still be intact and extractable one by one.
Messages you might see
- “Unexpected end of archive”
- “The compressed (zipped) folder is invalid.”
- “Can not open file as archive / Headers Error”
- “End-of-central-directory signature not found”
Why it happens
- An interrupted or incomplete download, or a cut-off copy from a flaky USB drive or network share.
- Part of a split archive (.z01, .z02) is missing.
- A failing disk or memory card damaged part of the file.
Try this first (free, no tool needed)
- Download the file again and compare the size (and checksum, if the source publishes one).
- Try 7-Zip, Keka or The Unarchiver. They are more tolerant than the built-in Windows or macOS extractors.
- On the command line, `zip -FF broken.zip --out fixed.zip` tries to rebuild the index.
- If it is part of a multi-part archive, make sure every part is in the same folder before opening the first.
If that didn't work
These tools run in your browser. Your file is read and repaired on your own device and is never uploaded.
Corrupted ZIP Partial-Extraction
Ignores a broken or missing central directory, walks the file entry by entry, inflates each one and checks its CRC-32, then writes everything recoverable into a new ZIP. Entries that are cut short can be kept as .damaged files. Password-protected entries are skipped and only the standard Store and Deflate methods are supported.
Open Corrupted ZIP Partial-ExtractionCommon questions
Can it recover files that were cut off halfway?
It can save the part that arrived and mark it as damaged, but a compressed file cut in half is usually only partly readable.
Is my file uploaded anywhere?
No. The tool runs as a program inside your own browser, so the file is read and repaired on your device and never sent to a server.