Why a ZIP file won't open on your Mac
"Unable to expand" is one message covering at least six different failures. Working out which one you have takes about a minute and decides whether the file is fixable.
You double-click a ZIP and macOS says "Unable to expand file.zip into Downloads. (Error 1 - Operation not permitted.)" or "Error 2 - No such file or directory", or it produces a file.zip.cpgz that expands into another file.zip, forever.
That last one is the most confusing and the most informative, so start there.
The .cpgz loop
If expanding a ZIP produces a .cpgz file, which expands back into a ZIP, which expands into a .cpgz, macOS is telling you something specific: Archive Utility could not read the file as a ZIP, fell back to treating it as a different archive type, and failed at that too.
This almost always means the file is not a valid ZIP. Usually because:
- The download was incomplete or corrupted. By far the most common cause.
- It is not actually a ZIP. A server sent an HTML error page with a
.zipextension. A 4KB "archive" is nearly always this. - It uses features Archive Utility does not support — certain compression methods, or ZIP64 for very large archives.
Check the size first. If the file is much smaller than expected, you downloaded an error page. Open it in TextEdit and you will see the HTML.
Diagnosing in one command
Terminal, and it takes a second:
unzip -t ~/Downloads/file.zip
This tests the archive without extracting. You get one of three useful answers:
No errors detected in compressed data— the archive is fine, and the problem is Archive Utility, not the file. Try a different extractor.cannot find zipfile directoryorEnd-of-central-directory signature not found— truncated or not a ZIP.bad CRCon specific entries — the archive is structurally valid but some contents are damaged. Other files may still extract.
That distinction matters, because the first case is recoverable by changing tools and the second needs a fresh copy.
To see what is inside without extracting:
unzip -l ~/Downloads/file.zip
The other common causes
Permissions. "Operation not permitted" often means the destination, not the archive. Expanding into a folder you lack write access to, or one that macOS protects — Desktop, Documents and Downloads are under privacy protection, and an app without the right permission gets denied. Move the file somewhere neutral and try again.
Disk space. A 2GB archive can expand to far more. macOS does not always warn clearly.
Filename encoding. An archive made on Windows with Turkish, Cyrillic or CJK filenames may store names in a legacy code page rather than UTF-8. macOS renders them as nonsense or refuses the entry. The archive is fine; the names are being misread. An extractor that lets you choose an encoding fixes it.
Quarantine. Files downloaded from the internet carry a quarantine attribute. Occasionally this interferes with extraction in ways that look like corruption. xattr -d com.apple.quarantine file.zip clears it — only do this for files you trust.
Multi-part archives. file.z01, file.z02, file.zip are one archive split across files. All must be in the same folder, and you open the .zip, not the .z01.
Path length and illegal characters. An entry whose name contains a colon, or a path deeper than macOS accepts, fails on that entry.
When it really is corrupt
If unzip -t reports a missing central directory, the file is truncated and there is no reliable repair. Re-download it.
If it reports bad CRCs on some entries only, you can often extract the rest:
unzip file.zip -x "damaged/path/*"
Partial recovery is worth trying before giving up, particularly for large archives where one file is damaged.
What Ziploom does
Ziploom is a native archive utility for Apple silicon Macs that reads RAR, ZIP and 7Z, including password-protected archives, and creates ZIP and 7Z. Because it does not share Archive Utility's implementation, it opens a proportion of the archives that produce the .cpgz loop — the first case in the diagnosis above.
It checks before it writes rather than after: unsafe paths, symbolic links, suspicious compression ratios, oversized jobs and available disk space, which is the failure that otherwise surfaces halfway through a large extraction. You choose how existing destinations are handled up front, follow progress, and reveal the output in Finder.
All processing is local. No accounts, analytics, advertising, telemetry or network features.
It will not repair a truncated download. Nothing will.