How to troubleshooting archive merger
- Step 1Confirm you dropped two or more archives — The most common failure. If you see
Drop at least two archives to merge., you supplied fewer than two inputs. Select at least two files (Ctrl/Cmd-click, or drag both). - Step 2Check your tier allows merging — Merging is multi-file and requires the Pro tier or higher. The Free tier allows only one input file, so it cannot merge at all. Confirm your plan if the drop zone won't accept a second file.
- Step 3Verify each input opens on its own — If the merge errors, test each archive individually with the archive integrity tester. A single corrupt or truncated input fails the whole merge — there's no partial output.
- Step 4Look for encryption — If an input ZIP has password-protected entries, the merge errors because no password is forwarded. Detect it with the encrypted archive detector, then extract that archive with its password and merge the re-zipped result.
- Step 5Wait out the WASM load for 7z/RAR/ISO — The first 7z, RAR, or ISO input downloads the libarchive WASM module before extraction. On a slow connection this looks like a stall — give it a moment. ZIP/TAR/GZ inputs don't need it.
- Step 6Check sizes and entry counts against your tier — If an input is rejected, compare it to your tier's per-file size cap and per-archive entry cap. Split oversized inputs with the archive splitter or reduce the file count.
Symptom to cause to fix
The most frequent Archive Merger issues and their real resolutions.
| Symptom | Likely cause | Fix |
|---|---|---|
Drop at least two archives to merge. | Fewer than two inputs supplied | Select two or more archives and re-drop |
| Drop zone won't take a second file | Free tier (one file only) | Merging needs Pro or higher |
| Merge fails partway, no output | One input is corrupt/truncated/unknown | Test each with the integrity tester; remove the bad one |
| Errors on a specific ZIP | That ZIP has encrypted entries | Extract it with its password first, then merge |
| Long pause before processing | libarchive WASM downloading for first 7z/RAR/ISO | Wait; subsequent archives reuse the loaded module |
| Input rejected immediately | Over per-file size or per-archive entry cap | Split the input or upgrade tier |
Files appear under <stem>/ | Collision-safe rename (working as designed) | Not an error — first writer kept the path |
A .gz/.tar.gz added only one file | Single gzip stream gunzipped, not member-expanded | Extract the tarball first if you need members |
Tier limits that trigger rejections
Use these to map a 'rejected' or 'won't merge' message to a specific cap. Free cannot merge because it permits a single file.
| Tier | Files per merge | Max size / file | Max entries / archive |
|---|---|---|---|
| Free | 1 (no merge) | 50 MB | 500 |
| Pro | 20 | 500 MB | 50,000 |
| Pro-media | 100 | 2 GB | 500,000 |
| Developer | unlimited | 2 GB | 500,000 |
Cookbook
Each block pairs the symptom you see with the exact diagnostic step and resolution.
Diagnose: 'Drop at least two archives'
You dropped one file. The merge stops before reading anything.
Symptom: Error: Drop at least two archives to merge. Cause: Only one input was provided. Fix: Ctrl/Cmd-click two files, or drag both onto the drop zone.
Diagnose: merge fails on one bad input
Isolate which archive is corrupt by testing each alone.
Symptom: Merge errors with a 'could not detect or extract' message. Diagnostic: Test each input at /archive-tools/archive-integrity-tester -> input-3.zip reports invalid central directory Fix: Remove or repair input-3.zip, then merge the rest.
Diagnose: encrypted input rejected
A password-protected ZIP can't be merged because the merger forwards no password.
Symptom: Merge errors when reading secure-bundle.zip Diagnostic: /archive-tools/encrypted-archive-detector -> entries encrypted (AES) Fix: Extract secure-bundle.zip with its password elsewhere, re-zip the contents, then merge the plain ZIP.
Understand: prefixed paths are not corruption
Seeing files under a folder named after an archive means the collision-safe rename ran.
Output you see: README.md build-2/README.md <- looks renamed/moved Reality: Both archives had README.md at root. First kept it; second was prefixed by its stem. Collisions chip = 1. Nothing was lost.
Mitigate: large merge stalls
A merge of several large archives can pause under memory pressure since everything is held in the browser.
Symptom: Tab unresponsive on a multi-GB merge. Mitigation: - Close other heavy tabs to free RAM - Split oversized inputs (/archive-tools/archive-splitter) - Merge in smaller batches, then merge the results - Confirm inputs are within your tier's size/entry caps
Edge cases and what actually happens
Fewer than two inputs
RejectedDrop at least two archives to merge. The merger gathers inputs and stops before extraction if there are fewer than two.
Free tier attempts a merge
BlockedThe Free tier allows a single input file, so merging (which needs two or more) isn't possible. Pro and above are required.
One corrupt input
ErrorIf any input can't be parsed, extraction throws and the entire merge fails — there is no partial result. Test inputs individually and exclude the bad one.
Encrypted ZIP entries
Fails to readNo password is forwarded during merge, so encrypted entries can't be extracted. Extract that archive with its password first, then merge the re-zipped output.
7z/RAR/ISO first-use pause
ExpectedThe libarchive WASM module downloads once per session before the first 7z/RAR/ISO can be read. The pause is the download, not a hang.
Input over size or entry cap
RejectedAn input larger than the per-file cap (50 MB Free / 500 MB Pro / 2 GB Pro-media+Developer) or above the per-archive entry cap is rejected before merging.
Prefixed `<stem>/` paths in output
By designThis is the collision-safe rename, not corruption. The first archive keeps a shared path; later duplicates are prefixed with their stem. The Collisions chip counts them.
gzip/tar.gz adds a single file
ExpectedA .gz/.tar.gz is gunzipped as one gzip stream and may contribute a single inner file rather than expanded members. Extract the tarball first if you need per-file merging.
Unknown-format input
Last-resort retryIf detection returns unknown, the reader tries to parse it as ZIP. If that fails too, the merge throws a 'could not detect or extract' error for that file.
WebAssembly blocked by an extension
ErrorIf a privacy/security extension blocks WebAssembly, 7z/RAR/ISO reads fail. Disable the blocker for the page or use a clean browser profile, then retry.
Frequently asked questions
Why do I get 'Drop at least two archives to merge.'?
You supplied fewer than two inputs. Merging needs at least two archives — select two or more (Ctrl/Cmd-click, or drag both onto the drop zone).
Why can't I merge on the Free tier?
The Free tier allows only one input file, and merging requires two or more. Merging is available on Pro (up to 20 files), Pro-media (100), and Developer (unlimited).
The merge is stuck on 'processing' — is it hung?
Usually not. If a 7z/RAR/ISO input is involved, the first one downloads the libarchive WASM module, which looks like a pause. For large merges, the tab can also be under memory pressure since everything runs in-browser — close other tabs or merge in smaller batches.
Why did my whole merge fail when only one file was bad?
A single corrupt, truncated, or undetectable input throws during extraction and fails the entire merge — there is no partial output. Test each input with the archive integrity tester and remove the offender.
Why did my password-protected ZIP fail to merge?
The merger forwards no password, so encrypted entries can't be read. Extract that archive with its password somewhere else, re-zip the contents, and merge the plain ZIP.
Why are some of my files now inside a folder named after an archive?
That's the collision-safe rename. When two archives share a path, the first keeps it and the later one is stored under <archive-stem>/<path>. Nothing was lost — the Collisions chip shows how many were renamed.
Why did my .tar.gz only add one file to the merge?
A .gz/.tar.gz is detected by gzip magic and gunzipped as a single stream, so it can contribute one inner file rather than expanded tar members. Extract the tarball first if you need its files merged individually.
Why was my input rejected before merging?
It exceeded a tier cap — either the per-file size (50 MB / 500 MB / 2 GB) or the per-archive entry count (500 / 50,000 / 500,000). Split it with the archive splitter or upgrade.
Is anything uploaded when I merge?
No. All extraction and re-zipping happen in your browser tab. There is no server-side path for archive tools, so 'network' errors aren't from uploads.
Can I change the output format or compression to fix a size problem?
No — the merger always writes ZIP at fflate level 6 with no options. To shrink the result, post-process with the smart archive compressor; for a different format, use the archive format converter.
Why does 7z/RAR reading fail in my browser specifically?
A privacy or security extension may be blocking WebAssembly, which libarchive needs. Disable the blocker for the page or use a clean profile and retry.
How do I confirm the merge included everything?
Check the Entries chip against the total files you expected, and the Collisions chip for renames. For a full manifest, list the merged ZIP with the file listing 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.