How to troubleshooting the archive size analyser
- Step 1Check the size tier limit first — Free caps every archive at 50 MB. Over that, you get a tier-limit error before any processing — there is no partial result. Pro raises it to 500 MB, Pro-Media / Developer to 2 GB. This is the first stage, so a size error means the read never started.
- Step 2Check the entry-count limit too — A separate cap limits entries per archive: 500 Free, 50,000 Pro, 500,000 Pro-Media. A 5 MB ZIP holding 9,000 tiny files fails the Free entry cap even though it is far under 50 MB. The error will say which limit was exceeded.
- Step 3Confirm the real format — Detection is by magic bytes, not the file extension. If a file fails to read, run /archive-tools/auto-format-detector — a
.zipthat is really a RAR, or a non-archive renamed to.zip, is a frequent cause. The analyser reads ZIP, TAR.GZ, GZIP, 7z, RAR, bz2, xz, and TAR; anything else fails. - Step 4Re-read the numbers as uncompressed bytes — If the totals look larger than the file on disk, that is expected: totalSize sums UNCOMPRESSED bytes. A 20 MB ZIP of text can report 120 MB of uncompressed content. For on-disk vs expanded comparison, use /archive-tools/compression-ratio-calculator.
- Step 5If a 7z/RAR stalls, suspect memory — libarchive fully decompresses 7z/RAR/bz2/xz to measure each entry, so a large one can exhaust browser memory where a same-size ZIP (read from the directory only) would not. Try a smaller part, or convert to ZIP first so fflate can read the directory without expanding the payload.
- Step 6Rule out browser extensions — If the page hangs while initialising WebAssembly, an extension may be intercepting worker channels. Retry in an Incognito/private window with extensions disabled. A hard refresh (Ctrl+Shift+R) also clears a stale cached build.
Error and symptom guide
Each failure mode, what triggers it, and the fix. Failures are checked in this order: tier limits, then format, then read.
| Symptom | Cause | Fix |
|---|---|---|
| 'Tier limit exceeded' on a large file | Archive over 50 MB (Free) / 500 MB (Pro) / 2 GB (Pro-Media) | Upgrade tier, or split with /archive-tools/archive-splitter |
| 'Tier limit exceeded' on a SMALL file | Entry count over 500 (Free) / 50,000 (Pro) | Upgrade tier; the file has too many entries, not too many MB |
| Fails to read / unsupported format | Not an archive, or a format outside ZIP/TAR.GZ/GZIP/7z/RAR/bz2/xz/TAR | Confirm true format with /archive-tools/auto-format-detector |
| Sizes larger than the file on disk | totalSize is UNCOMPRESSED bytes, summed per group | Expected; use /archive-tools/compression-ratio-calculator for on-disk vs expanded |
| Large 7z/RAR stalls or runs out of memory | libarchive fully decompresses to measure entries | Use a smaller part, or convert to ZIP so fflate reads the directory only |
| Page hangs initialising WASM | Browser extension intercepting worker channels | Retry in Incognito with extensions off; hard-refresh (Ctrl+Shift+R) |
Is the Size Analyser even the right tool?
Many 'it does not do X' reports are really 'X is a different tool'. Redirect to the right sibling.
| You wanted... | Right tool | Note |
|---|---|---|
| Find duplicate files | /archive-tools/redundancy-analyzer | Size Analyser groups by name/extension, never hashes content |
| Compression ratio per file | /archive-tools/compression-ratio-calculator | Size Analyser reports uncompressed bytes only |
| Repair a corrupt ZIP | /archive-tools/corrupted-zip-repair | Size Analyser will reject an unreadable central directory |
| Per-type entry COUNT | /archive-tools/file-type-breakdown | Count-oriented companion to the byte view |
| Verify the archive is intact | /archive-tools/archive-integrity-tester | Size Analyser reads structure, it does not CRC-check payloads |
| Read full entry headers | /archive-tools/archive-metadata-extractor | Timestamps, methods, flags per entry |
Cookbook
Diagnostic walk-throughs for the failures support sees most. Each shows the symptom and the resolution.
Small ZIP rejected: it is the entry cap
An 8 MB ZIP fails on Free even though 8 MB is well under 50 MB. The culprit is the entry-count limit.
File: many-icons.zip (8 MB, 6,200 entries) Tier: Free (50 MB / 500 entries) Error: tier limit exceeded Diagnosis: 8 MB passes the SIZE cap but 6,200 entries blows the 500-entry cap. Upgrade to Pro (50,000 entries) or analyse a subset.
Renamed RAR fails as a ZIP
A file named .zip will not read; the format detector reveals it is actually a RAR.
File: archive.zip Symptom: fails to read auto-format-detector -> magic bytes: 52 61 72 21 => RAR (not ZIP) Resolution: the file IS readable — magic-byte detection routes it to libarchive WASM. If it still fails, the RAR is likely corrupt; re-download the source.
'The sizes are wrong' — uncompressed vs on-disk
A 20 MB ZIP reports 140 MB of content. That is correct: the totals are uncompressed.
File on disk: logs.zip (20 MB) Report total: byTopFolder logs totalSize = 146800640 (~140 MB) Not a bug: text logs compress ~7:1, so 20 MB on disk expands to ~140 MB uncompressed. For the on-disk vs expanded view: /archive-tools/compression-ratio-calculator
Big 7z exhausts browser memory
A 400 MB 7z stalls because libarchive must decompress every entry to measure it.
File: dataset.7z (400 MB compressed, ~3 GB expanded) Tier: Pro (500 MB cap — size passes) Symptom: tab stalls / out of memory Cause: libarchive fully expands 7z to measure (~3 GB in RAM). Fix: convert to ZIP (fflate reads the directory without expanding), or analyse on a machine with more memory.
Stuck on 'Processing' — stale build or extension
The page never finishes. Two quick checks resolve nearly all cases.
Symptom: 'Processing...' never completes, no error 1. Hard refresh (Ctrl+Shift+R) to drop a stale cached chunk. 2. Retry in an Incognito window with extensions disabled — some extensions intercept the worker/WASM channel and block initialisation. If it still hangs on a 7z/RAR, see the memory case above.
Edge cases and what actually happens
File over the size cap
Tier limit (rejected)Free rejects over 50 MB, Pro over 500 MB, Pro-Media / Developer over 2 GB. The check runs before processing, so you get an immediate error and no partial report. Upgrade, or split with /archive-tools/archive-splitter and analyse a part.
File over the entry cap
Tier limit (rejected)Independently of size, the entry count is capped at 500 (Free), 50,000 (Pro), 500,000 (Pro-Media). A small archive with thousands of tiny files trips this. The error names the limit exceeded — read it to tell size-cap from entry-cap.
Not an archive at all
Unsupported format (error)If magic-byte detection returns 'unknown', the file is handed to libarchive as a last resort; a genuine non-archive then fails to parse with a format error. Confirm the file is an archive with /archive-tools/auto-format-detector before retrying.
Corrupt central directory
Read failed (error)The ZIP reader locates the end-of-central-directory record; if it is missing or the directory is truncated, the read returns no entries and the analysis fails. Recover what is salvageable with /archive-tools/corrupted-zip-repair, then re-run the analyser.
Totals exceed the on-disk size
ExpectedtotalSize sums uncompressed bytes per group, so the numbers are routinely larger than the archive file itself — that is the whole point of measuring content. For compressed-vs-uncompressed figures use /archive-tools/compression-ratio-calculator.
Large 7z/RAR runs out of memory
Memory limitlibarchive fully decompresses 7z/RAR/bz2/xz to measure each entry, unlike ZIP/TAR.GZ which are read from the directory. A 7z whose expanded size dwarfs available RAM can crash the tab. Convert to ZIP, or analyse a smaller part.
Encrypted ZIP
Supported (sizes only)The size breakdown works on encrypted ZIPs because entry names and uncompressed sizes live in the central directory, readable without the password. You do not need to decrypt to analyse sizes. Confirm encryption with /archive-tools/encrypted-archive-detector.
WASM blocked by an extension
Init blockedAn extension that intercepts worker channels can stall WebAssembly initialisation, leaving the page on 'Processing'. Disable extensions / use Incognito and retry. A hard refresh also clears a stale cached build that can present the same symptom.
Surprising extension groups (dotfiles)
ExpectedGrouping splits on the last dot, so .gitignore becomes a gitignore group and app.tar.gz becomes gz. If you see an odd group name, it is the dotfile/last-segment rule, not a parsing error.
It does not find duplicates / ratios
Wrong toolThe Size Analyser only groups by name and folder. For duplicates use /archive-tools/redundancy-analyzer; for compression ratios use /archive-tools/compression-ratio-calculator; for integrity use /archive-tools/archive-integrity-tester. These are separate tools by design.
Frequently asked questions
Why does it say my file is too large when it is small?
You hit the ENTRY-count cap, not the size cap. The archive family limits entries per archive to 500 (Free), 50,000 (Pro), 500,000 (Pro-Media). A 5 MB ZIP with thousands of files exceeds the Free 500-entry limit. The error names the limit exceeded — upgrade or analyse a subset.
Why does the report show more bytes than the file size?
Because every totalSize is UNCOMPRESSED bytes summed per group. A 20 MB ZIP of text can report well over 100 MB of content — that is the point of measuring what is inside. For on-disk vs expanded figures, use /archive-tools/compression-ratio-calculator.
My .zip will not open — what is wrong?
It may not actually be a ZIP. Detection is by magic bytes, so run /archive-tools/auto-format-detector. A .zip that is really a RAR will route to libarchive and read fine; a truly broken ZIP (corrupt central directory) needs /archive-tools/corrupted-zip-repair first.
Why does a big 7z stall when a same-size ZIP does not?
libarchive must fully decompress 7z/RAR/bz2/xz to measure each entry, so a 7z that expands to several gigabytes can exhaust browser memory. ZIP and TAR.GZ are read from the directory without expanding the payload, so they are far lighter. Convert the 7z to ZIP, or analyse a part.
It is stuck on 'Processing' with no error — what now?
Two fixes resolve almost all cases: hard-refresh (Ctrl+Shift+R) to drop a stale cached build, and retry in an Incognito window with extensions disabled — some extensions block WebAssembly worker channels. If it only hangs on large 7z/RAR, it is the memory case above.
Which formats does the analyser actually support?
ZIP, TAR.GZ, and GZIP via fflate; 7z, RAR, bz2, and xz via libarchive WASM; plus plain TAR. Anything outside that set fails with an unsupported-format error. It is read-only — it does not create or convert archives.
Does it need the password for an encrypted archive?
No, for the size breakdown — entry names and uncompressed sizes are in the central directory and readable without decrypting payloads. To confirm an archive is encrypted in the first place, use /archive-tools/encrypted-archive-detector.
Why is there no bar chart even though some docs mention one?
The live tool returns a JSON report (byExtension, byTopFolder, total) plus on-screen metric pills (distinct extensions, top folders). It does not render a visual chart. Paste the JSON into a spreadsheet if you need a graphic.
Why does a folder I expected not appear in byTopFolder?
Grouping uses only the FIRST path segment, so docs/api/v1.md rolls into docs, never api. If a subfolder seems missing, it has been rolled up into its top-level parent. Subfolder-level totals are not something this tool produces.
Why is .gitignore in a 'gitignore' group?
Extension grouping splits on the last dot, and .gitignore has gitignore after that dot, so it lands in a gitignore group rather than (no extension). app.min.js similarly lands in js. This is expected behaviour, not a bug.
Can I increase the limits without upgrading?
No. The 50 MB / 500-entry Free caps are fixed; raising them requires Pro (500 MB / 50,000) or Pro-Media / Developer (2 GB / 500,000). To stay on Free, split the archive with /archive-tools/archive-splitter and analyse one part at a time.
It reads the archive but the numbers seem off — is it counting folders?
No. Directory entries (paths ending in /) are skipped before grouping, so they do not appear in byExtension and do not inflate the total. Only files are counted. If a count looks low, remember symlinks and directory placeholders are excluded.
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.