How to troubleshooting the smart compressor
- Step 1Check the tier limit first — Free caps each job at 50 MB, Pro at 500 MB, Pro-media and Developer at 2 GB. Oversized input is blocked with a tier-limit message before the ZIP finishes. The drop zone shows your active 'max ... per file' label.
- Step 2Check the entry count, not just bytes — There is a separate per-archive entry cap: 500 (Free), 50,000 (Pro), 500,000 (Pro-media/Developer). A folder of many tiny files can hit this while well under the size cap — prune empties or upgrade.
- Step 3Confirm you want to BUILD, not READ — This tool compresses dropped files into a new ZIP. It does not open an existing
.zip/.rar/.7z. If you meant to extract, use /archive-tools/multi-format-extractor. - Step 4Explain a near-0% result — If Saved reads ~0%, the input is entropy-dense (JPEG, MP4, MP3, existing ZIP). That is expected — set the level to
0to package quickly, or extract-then-recompress if it was a nested archive. - Step 5Reduce a stuck large job —
zipSyncholds everything in memory. If a big job hangs on Processing…, it may be memory pressure — try fewer/smaller files, a lower level, or /archive-tools/streaming-zip-builder for large local-file ZIPs. - Step 6Rule out the wrong-tool assumption — Need a password? Use /archive-tools/encrypted-zip-creator. Need 7z/tar.gz? Convert with /archive-tools/zip-to-tar-gz. These are not bugs — they are different tools.
Error / symptom matrix
Map what you see to the real cause and fix. Wording reflects the actual processor messages where applicable.
| Symptom | Likely cause | Fix |
|---|---|---|
| "Drop one or more files to compress." | Generated with an empty drop zone | Add at least one file, then Generate |
| Tier-limit / 'exceeds the ... limit' message | Input over the size cap for your tier | Upgrade, or split the set before compressing |
| Blocked despite small total size | Over the entry-count cap (500 Free etc.) | Prune empties or move to a higher tier |
| Saved reads ~0% | Already-compressed input (JPEG/MP4/ZIP) | Set level to 0; or extract then recompress |
| Hangs on Processing… | Memory pressure from a large zipSync job | Fewer/smaller files, lower level, or streaming-zip-builder |
| No password option | By design — output is unencrypted | Use encrypted-zip-creator |
| No 7z/tar.gz output | By design — ZIP only | Convert with zip-to-tar-gz / archive-format-converter |
Limits at a glance
The two caps that cause most blocks. Either one can stop a job.
| Tier | Size cap | Entry cap | Files per batch |
|---|---|---|---|
| Free | 50 MB | 500 | 1 |
| Pro | 500 MB | 50,000 | 20 |
| Pro-media | 2 GB | 500,000 | 100 |
| Developer | 2 GB | 500,000 | unlimited |
Cookbook
Each block shows a symptom and the exact diagnostic that resolves it. The behaviour matches the compressor's code path (fflate zipSync, level slider, tier checks).
Blocked: file over the tier cap
A 220 MB input on Free is rejected before the ZIP completes. The fix is to upgrade or split.
Free tier, dropped: bigset.tar 220 MB Result panel (red): File "bigset.tar" exceeds the free tier per-job limit (50 MB). Upgrade for larger files. Fix: Pro (500 MB) or Developer (2 GB), or split first.
Blocked: too many entries, small bytes
A node_modules tree is tiny in total but has thousands of files — it trips the entry cap, not the size cap.
Free tier, dropped folder: node_modules/ (1,840 files, 31 MB)
Result: blocked — over the 500-entry free cap.
Fix: prune with /archive-tools/empty-folder-pruner,
or upgrade (Pro = 50,000 entries).Saved ~0% on media
Not a bug — JPEGs are already compressed. Drop the level to 0 so the job is instant.
Dropped: gallery/ (320 JPGs, 410 MB), level 6 Metrics: Files: 320 Level: 6 Saved: 0.1% (slow, pointless) Fix: set level to 0 Files: 320 Level: 0 Saved: 0.0% (instant package)
Wrong tool: trying to open a .rar
The Smart Compressor builds ZIPs from files; it does not read RAR. Drop the RAR into the extractor instead.
Dropped: archive.rar into smart-archive-compressor What happens: it tries to PACKAGE the .rar file into a new ZIP (a no-op wrapper), not extract it. Fix: /archive-tools/multi-format-extractor opens RAR/7z/tar.
Hang on a huge in-memory job
A 1.8 GB job on a low-RAM machine can stall because zipSync buffers everything. Reduce the job or stream.
Dropped: 1.8 GB of files, level 6 -> Processing… (stuck) Fix options: - Split into smaller batches - Lower the level (less working memory) - Use /archive-tools/streaming-zip-builder (bounded memory)
Edge cases and what actually happens
Generate clicked with no files
RejectedThe processor throws "Drop one or more files to compress." Add at least one file. This is a generative tool — it needs input files to build the ZIP from.
Input exceeds the size cap
Tier limitFree 50 MB, Pro 500 MB, Pro-media/Developer 2 GB. The job is blocked with a tier-limit message. Upgrade or split the set; the drop zone shows your active cap.
Over the entry cap with small files
Tier limitThe 500 / 50,000 / 500,000 entry cap is independent of bytes. A file-dense folder can be blocked while tiny in total. Prune with /archive-tools/empty-folder-pruner or upgrade.
Saved percentage is ~0
ExpectedEntropy-dense input (JPEG, MP4, MP3, existing ZIP) cannot be shrunk by DEFLATE. Set the level to 0 to package without wasted CPU. Not a malfunction.
Dropped an existing archive expecting extraction
RedirectThis tool packages files; it will wrap your .zip/.rar as a single entry, not open it. Use /archive-tools/multi-format-extractor to extract instead.
Stuck on Processing…
Memory limitzipSync buffers all input and output in memory; a very large job can stall on low-RAM machines. Reduce the job, lower the level, or use /archive-tools/streaming-zip-builder.
No password field
By designOutput is an unencrypted ZIP — there is no encryption control. For a password, use /archive-tools/encrypted-zip-creator (AES-256).
Expected 7z or tar.gz
By designThe tool only writes ZIP. Convert the result with /archive-tools/zip-to-tar-gz or /archive-tools/archive-format-converter.
Wanting to run it in CI
UnsupportedThere is no API or CLI — it is a UI tool. A failing CI integration is not a bug; use fflate in Node or a zip CLI for automation.
Output bytes change between runs
ExpectedEntry timestamps come from lastModified, so identical content can produce different bytes. For stable output, follow with /archive-tools/timestamp-normalizer at a fixed date.
Frequently asked questions
Why does it say my file is too big?
It exceeds your tier's size cap: Free 50 MB, Pro 500 MB, Pro-media and Developer 2 GB. Upgrade, or split the set into smaller jobs before compressing.
Why is it blocked when my files are tiny?
You likely hit the entry-count cap (500 on Free, 50,000 on Pro, 500,000 higher). It is separate from byte size. Prune empty folders or move to a higher tier.
Why does my file barely shrink?
It is already compressed — JPEG, MP4, MP3, and existing ZIPs are entropy-dense and resist DEFLATE. Set the level to 0 to package them instantly instead of waiting.
Why is it stuck on Processing…?
The tool builds the ZIP in memory with zipSync. A very large job can stall on a low-RAM machine. Try fewer/smaller files, a lower level, or /archive-tools/streaming-zip-builder.
Why won't it open my .rar / .7z?
Because this tool BUILDS a ZIP from files — it does not read existing archives. To extract, use /archive-tools/multi-format-extractor.
Where is the password option?
There isn't one — the output is unencrypted. Use /archive-tools/encrypted-zip-creator for AES-256 password protection.
How do I get 7z or tar.gz output?
Not from this tool — it writes ZIP only. Convert the result with /archive-tools/zip-to-tar-gz or /archive-tools/archive-format-converter.
Is there a 30-second timeout?
There is no fixed timeout in this tool — a stall is memory pressure, not a timer. Reduce the job or switch to the streaming builder for large inputs.
What error wording will I see?
An empty drop zone gives "Drop one or more files to compress." An oversized file gives a message that it "exceeds the [tier] tier per-job limit (...)." Both appear in a red panel above the result.
Can I get the same output every time?
Not by default — timestamps come from lastModified. Chain /archive-tools/timestamp-normalizer at a fixed date for deterministic bytes.
The ZIP won't open in my unzipper — why?
The output is a standard ZIP, so a failure usually means a truncated download. Re-download, then verify with /archive-tools/archive-integrity-tester.
Is a failed CI run a bug?
No. The Smart Compressor has no API or CLI — it is a browser UI. For automation, use fflate in Node or a zip/tar CLI.
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.