How to repair a corrupted zip file online in your browser
- Step 1Open the repair tool — Go to /archive-tools/corrupted-zip-repair. The tool requires a Pro plan or higher; free accounts see an upgrade overlay instead of the dropzone.
- Step 2Drop the damaged ZIP — Drag the broken .zip onto the dropzone (or click to browse). The file is read locally with the File API. Only one file is processed at a time — this is a single-file reader, not a batch tool.
- Step 3Check it is under your tier limit — Pro caps each job at 500 MB, Pro-Media and Developer at 2 GB. A larger file throws a tier-limit error before scanning starts.
- Step 4Click Process — The tool scans the whole file for local file headers, decompressing each recoverable entry. There are no settings to choose — the recovery algorithm is fixed.
- Step 5Read the recovery report — The result panel shows Attempts (headers seen), Recovered (entries salvaged), and Recovery rate. A rate below 100% means some entries were encrypted, truncated, or used an unsupported compression method.
- Step 6Download the repaired ZIP — Click Download to save
<name>-repaired.zip. Open it in any unzip tool to confirm the salvaged files. Verify integrity afterward with Archive Integrity Tester.
What the repair scan can and cannot recover
Grounded in the repairZip handler — recovery requires an intact local header, non-encrypted flag, and decompressible data.
| Damage type | Recoverable? | Why |
|---|---|---|
| Broken / missing central directory (EOCD) | Yes | The scan never reads the directory — it walks raw bytes for PK\x03\x04 headers |
| Truncated download (tail cut off) | Partial | Entries before the cut recover; the final entry whose data runs past end-of-file is skipped |
| Garbled or duplicated EOCD comment | Yes | Irrelevant to the local-header scan |
| Encrypted entries (ZipCrypto / AES) | No | Entries with the encryption flag (bit 0) set are skipped — no password support in this tool |
| Compressed data itself corrupted | No | inflate throws, the entry is skipped and counted as a failed attempt |
| Stored (uncompressed, method 0) entries | Yes | Bytes are copied raw with no decode step |
| Streamed entries (size-zero local header + data descriptor) | No | compressedSize must be greater than 0 in the local header; size-deferred entries are skipped |
Tier limits for the repair tool
From lib/tier-limits.ts (archive family). This tool's minimum tier is Pro, so the free row does not apply to the repair tool itself.
| Plan | Max file size | Max entries per archive | Files per job |
|---|---|---|---|
| Free | Tool locked (Pro required) | — | — |
| Pro | 500 MB | 50,000 | 1 (single-file tool) |
| Pro-Media | 2 GB | 500,000 | 1 (single-file tool) |
| Developer | 2 GB | 500,000 | 1 (single-file tool) |
Cookbook
Five real recovery situations and exactly what the byte-scan does with each. The recovery report numbers shown are the live Attempts / Recovered / Recovery-rate metrics the tool emits.
Recover a download that won't open
A 40 MB ZIP downloaded over flaky Wi-Fi opens nowhere. The central directory is fine but EOCD points past a truncated tail.
Input: release-build.zip (won't open: "unexpected end of archive") Process -> byte-scan for PK\x03\x04 Recovery report: Attempts: 214 Recovered: 213 Recovery rate: 99% Output: release-build-repaired.zip (213 files, last truncated entry dropped)
Salvage from a wiped index
A backup tool overwrote the last few KB of the archive, destroying the central directory. The compressed payloads are untouched.
Input: nightly-backup.zip ("central directory not found")
Process
Recovery report:
Attempts: 1,402
Recovered: 1,402
Recovery rate: 100%
Output: nightly-backup-repaired.zip -> every file back, fresh clean indexMixed archive with some unrecoverable entries
An old ZIP contains a handful of encrypted documents alongside plain files. The scan recovers the plain ones and skips the encrypted ones.
Input: case-files.zip Process Recovery report: Attempts: 60 Recovered: 52 (8 entries had encryption flag set -> skipped) Recovery rate: 87% Note: encrypted entries need a password; this tool has no password field. Use /archive-tools/encrypted-archive-detector to confirm what is encrypted.
Wrong file type hits the tool
A RAR renamed to .zip is dropped in. There are no PK\x03\x04 headers anywhere, so the scan finds nothing.
Input: archive.zip (actually a RAR: magic bytes 52 61 72 21)
Process
Error: "No recoverable local file headers found —
the file may not be a ZIP at all."
Fix: run /archive-tools/auto-format-detector to see the real format.Confirm the repaired output
After repair, verify the new ZIP is structurally sound before trusting it.
Step 1: Corrupted ZIP Repair -> photos-repaired.zip
Step 2: /archive-tools/archive-integrity-tester (repaired ZIP)
-> CRC checks pass on all 213 entries
Step 3: /archive-tools/checksum-generator -> SHA-256 manifest for recordsEdge cases and what actually happens
Encrypted entries
Skipped by designEntries whose general-purpose flag has bit 0 set (encryption) are skipped — the tool has no password field and does not attempt decryption. They count toward Attempts but not Recovered. Confirm what is encrypted with Encrypted Archive Detector.
Not a ZIP at all
Error: no headersIf zero PK\x03\x04 headers are found the tool throws "No recoverable local file headers found — the file may not be a ZIP at all." 7z, RAR, TAR and GZIP have no ZIP local headers, so they fail here. Identify the real format with Auto Format Detector.
Entry order changes
ExpectedRecovered files follow byte-scan order (offset in the file), not the original central-directory order. Per-file contents are identical; only the listing sequence may differ.
Corrupt compressed data
SkippedIf inflate throws on an entry's data, that entry is silently skipped and the scan continues from the next header. Genuinely damaged compressed bytes cannot be reconstructed.
Size-deferred (streamed) entries
SkippedEntries written with a zero compressedSize in the local header and a trailing data descriptor are skipped — recovery requires compressedSize greater than 0 in the header itself.
Directory entries
OmittedNames ending in / are folder markers and are not added to the output; folder structure is still preserved through the file paths of recovered entries.
Output is recompressed
By designThe repaired ZIP is rebuilt with fflate at deflate level 6, not a byte-copy of the original. File contents are bit-identical after extraction; the compressed bytes and ZIP index are fresh.
Over the tier limit
Error: tier limitFiles larger than your plan's cap (Pro 500 MB, Pro-Media / Developer 2 GB) throw a tier-limit error before scanning begins.
Free account
Locked: Pro requiredThis tool's minimum tier is Pro. Free accounts see an upgrade overlay rather than the dropzone.
Frequently asked questions
Does the repair tool upload my ZIP?
No. The damaged file is read from disk with the browser File API and processed by the fflate library inside your tab. Open DevTools, Network during a run and you will see no outbound request carrying the file.
How does it recover files from a broken ZIP?
It ignores the central directory (the part that is usually corrupt) and scans the raw bytes for PK\x03\x04 local file headers. For each header it reads the name, compression method, and size, then decompresses the data and adds it to a clean new ZIP.
What kinds of corruption can it fix?
Broken or missing central directories, garbled EOCD records, and truncated tails — anything where the file payloads survived but the index did not. It cannot repair compressed data that is itself damaged.
Is the tool free?
No. Corrupted ZIP Repair requires the Pro plan or higher. Free accounts see an upgrade overlay. Pro processes files up to 500 MB; Pro-Media and Developer up to 2 GB.
Why does my recovery rate show less than 100%?
Recovery rate is recovered entries divided by headers attempted. A rate below 100% means some headers pointed to encrypted entries, truncated data, or compression methods the tool cannot decode — those are skipped.
Can it recover password-protected entries?
No. Entries with the encryption flag set are skipped because this tool has no password input. Check which entries are encrypted with the Encrypted Archive Detector.
Will the repaired ZIP be byte-identical to the original?
The extracted file contents are identical, but the ZIP itself is rebuilt fresh with fflate at deflate level 6 and a new central directory. Entry order follows byte-scan order, which may differ from the original.
What if it finds nothing?
If no PK\x03\x04 headers exist, you get "No recoverable local file headers found." That usually means the file is not actually a ZIP — run Auto Format Detector to see its true format.
Can it repair 7z or RAR files?
No. The scan only understands ZIP local headers. 7z, RAR, TAR, and GZIP have different structures and will return the no-headers error. This tool is ZIP-only.
How big a file can it handle?
Up to your tier's per-job cap: 500 MB on Pro, 2 GB on Pro-Media and Developer. Very large files are limited by available browser memory since the whole file is held in RAM during the scan.
Does it work offline?
Once the page and its WebAssembly chunk have loaded, the scan runs locally with no further network calls. A flaky connection during processing does not affect the result.
What should I do after repair?
Verify the output with Archive Integrity Tester (confirms per-entry CRCs) and, for record-keeping, generate a SHA-256 manifest with the Checksum Generator.
Privacy first
Every JAD Archive tool runs entirely in your browser using fflate, @zip.js/zip.js, and the libarchive WASM bridge. Your archives never leave your device — verified by zero outbound network requests during processing.