How to troubleshooting the encrypted zip creator
- Step 1Confirm you're on a paid tier — If you see a plan overlay instead of the dropzone, that's expected — the tool is
minTier: pro. Sign in on Pro, Pro+Media, or Developer. Free/signed-out sessions cannot run it. - Step 2Check the password length — If Generate throws 'Choose a password of at least 8 characters (12+ recommended).', your password is under 8 chars. Use a 12+ char passphrase. This is enforced before any file is read.
- Step 3Make sure files are actually staged — 'Drop one or more files to encrypt.' means the file list was empty when you clicked Generate. Re-drop the files (any type is accepted) and confirm they appear in the dropzone before generating.
- Step 4Test the output before sending — If a recipient reports 'wrong password', verify the archive yourself with archive-password-tester using the same password. If it PASSes for you, the issue is their unzipper, not the file.
- Step 5Rule out an old unzipper on the recipient side — AES-256 ZIPs use the extra field
0x9901; ancientunzipbuilds don't support it and report 'unsupported method' or a false 'wrong password'. Ask the recipient to use current 7-Zip, Keka, or a recentunzip. - Step 6If it stalls on a huge job, reduce or offload — zip.js buffers the result Blob in memory. A near-ceiling job (up to 2 GB per file) can stall a tab. Split the input, or on paid tiers let it route to the local @jadapps/runner for more headroom.
Symptom → cause → fix
Each row maps to real code in archive-tool-client.tsx and archive-processor.ts (createEncryptedZip).
| Symptom | Cause | Fix |
|---|---|---|
| Plan overlay instead of dropzone | Tool is minTier: pro; you're free/signed-out | Upgrade to Pro/Pro+Media/Developer |
| 'Choose a password of at least 8 characters…' | Password under the 8-char floor | Use a 12+ character passphrase |
| 'Drop one or more files to encrypt.' | File list empty at Generate | Drop files; confirm they show before generating |
| Recipient: 'wrong password' (yours is right) | Their unzipper predates AES extra field 0x9901 | Use current 7-Zip / Keka / recent unzip |
| Recipient: 'unsupported method' | Same — old reader can't do AES-256 ZIP | Modern AES-aware unzipper |
| Tab stalls on a very large job | zip.js buffers the result Blob in memory | Split input or offload to the runner (paid) |
| No compression slider visible | By design — only a password field is rendered | Use smart-archive-compressor for levels |
Misconceptions corrected
Claims that float around about this tool, checked against the implementation.
| Claim | Reality |
|---|---|
| 'It times out after 30 seconds' | False — the processor has no timeout for this handler |
| 'It's free' | False — minTier: pro; free users get an overlay |
| 'It can recover a forgotten password' | False — AES-256 is infeasible to brute-force; no recovery |
| 'It can make a ZipCrypto archive' | False — it only writes AES-256 (AE-2) |
| 'It has a compression-level slider' | False — only a password field; level is ignored |
| 'CRC mismatch can happen on creation' | Misplaced — CRC checks are for reading; creation writes fresh CRCs |
Cookbook
Reproduce each failure and apply the fix. Error strings are quoted verbatim from the processor.
Blocked on the free tier
The most common 'it doesn't work' — there's no dropzone at all because the tool requires Pro.
Symptom: page shows a plan overlay, no upload box. Reason: minTier is 'pro'; ProOverlay renders for free users. 'AES-256 Encrypted ZIP Creator requires the Pro plan.' Fix: sign in on Pro / Pro+Media / Developer.
Password too short
Generate throws immediately, before reading files, when the password is under 8 characters.
Password: 'hunter2' (7 chars)
Click Generate →
Error: Choose a password of at least 8 characters
(12+ recommended).
Fix: use a 12+ char passphrase (vault-generated is ideal).No files dropped
Clicking Generate with nothing staged surfaces the empty-input error.
Files staged: 0 Click Generate → Error: Drop one or more files to encrypt. Fix: drop the files (any type) and confirm they list, then Generate.
Recipient can't open it — it's their unzipper
A correct password fails on an old reader because AES-256 ZIP uses extra field 0x9901.
You: archive-password-tester + same password → PASS Them: 'wrong password' or 'unsupported compression method' Diagnosis: their unzip predates AES ZIP support. Fix: 7-Zip, Keka, or a recent unzip build on their side.
Stuck 'Generating…' on a huge selection
There's no timeout; a near-ceiling job is simply memory-heavy. Reduce or offload.
Dropped: 1.9 GB across 60 files (Pro+Media) Button stays on 'Generating…' Reason: zip.js buffers the encrypted Blob in memory. Fix: split into smaller bundles, or on paid tiers let it route to the local @jadapps/runner (more headroom).
Edge cases and what actually happens
Free or signed-out user
Blocked (upgrade)minTier: pro means a ProOverlay replaces the tool for free/signed-out sessions: 'AES-256 Encrypted ZIP Creator requires the Pro plan.' This is the number-one 'it's broken' report and it's expected behaviour — upgrade to access it.
Password under 8 characters
RejectedThe processor throws 'Choose a password of at least 8 characters (12+ recommended).' before touching any file. Eight is the hard floor; the input placeholder recommends 12+. There is no way around it — choose a longer passphrase.
Empty file list
RejectedWith no files staged the handler throws 'Drop one or more files to encrypt.' Drag files into 'Drop files to process' (any type is accepted) and confirm they appear before clicking Generate.
Lost password
UnrecoverableThere is no recovery path. AES-256 with a strong password can't be brute-forced, and JAD never stores it — the file is built in your tab. Store passwords in a manager before sharing; a lost password means a lost archive.
Recipient reports 'wrong password' but yours is correct
Reader too oldAES-256 ZIP uses extra field 0x9901. Old unzip builds and some minimal tools don't support it and emit a misleading 'wrong password' or 'unsupported method'. Verify yourself with archive-password-tester; if it PASSes, the fix is a modern unzipper on their end (7-Zip, Keka, recent unzip).
Expecting a 30-second timeout
Not presentThis handler has no timeout — earlier troubleshooting copy claiming a 30-second cutoff is wrong. A long 'Generating…' means a large in-memory job, not a timer. Reduce the input or offload to the runner on paid tiers.
Looking for a compression slider
Not presentThe options panel renders only a password field, and createEncryptedZip ignores compressionLevel — deflate runs at the zip.js default. If you need to tune compression, use smart-archive-compressor (level 0-9, no encryption), then encrypt the result.
Job too large for the tab
Memory boundzip.js assembles the encrypted result as a Blob in memory. Even within the 2 GB per-file ceiling, a big multi-file selection can stall or crash a tab. Split into smaller bundles, build a plain large ZIP with streaming-zip-builder first, or offload to the local runner on paid tiers.
Output is named encrypted.zip every time
ExpectedThe handler hardcodes the filename encrypted.zip. This isn't a bug — rename the download to your convention afterward. If you generate several archives, rename each immediately so they don't overwrite one another in the downloads folder.
Saved % shows 0 on media
ExpectedAlready-compressed inputs (JPEG, MP4, an existing ZIP) have no headroom and AES output is incompressible, so the Saved metric sits near zero. The encryption still applied — use the metric only as a compression signal, not a success indicator. For a per-file breakdown use compression-ratio-calculator.
Frequently asked questions
Why is there no dropzone — just an upgrade prompt?
The Encrypted ZIP Creator is minTier: pro. Free or signed-out users see a ProOverlay ('AES-256 Encrypted ZIP Creator requires the Pro plan.') instead of the tool. Sign in on Pro, Pro+Media, or Developer to use it.
Why does Generate immediately throw about the password?
Your password is under 8 characters. The processor throws 'Choose a password of at least 8 characters (12+ recommended).' before reading any files. Use a 12+ character passphrase, ideally from a password manager.
Why does it say 'Drop one or more files to encrypt.'?
The file list was empty when you clicked Generate. Drag files into the dropzone (any file type is accepted) and confirm they appear, then Generate. This tool builds an archive from your input — it needs at least one file.
Does it time out after 30 seconds?
No — that's a myth. The handler has no timeout. If the button stays on 'Generating…', the job is large and zip.js is buffering the result in memory. Reduce the input or, on paid tiers, let it route to the local runner.
Why can't my recipient open the file with the right password?
Almost always their unzipper is too old for AES-256 ZIP (extra field 0x9901) and reports a false 'wrong password' or 'unsupported method'. Verify the archive yourself with the Archive Password Tester; if it passes, have them use current 7-Zip, Keka, or a recent unzip.
Can the tool recover a password I forgot?
No. AES-256 with a strong password is computationally infeasible to brute-force and JAD stores nothing. There is no reset or backdoor. Always save the password in a manager before sharing the file.
Where's the compression-level slider?
There isn't one for this tool. Its options panel renders only a password field, and the handler ignores compressionLevel — deflate runs at the zip.js default. For level control use smart-archive-compressor, then encrypt its output here.
Why is the output the same size as the input?
Because the input was already compressed (media, an existing ZIP) — there's no headroom and AES output can't be compressed further, so Saved shows ~0%. That's expected; the file is still encrypted. Use the Compression Ratio Calculator for a per-file view.
Could I see a 'CRC mismatch' when creating?
No — CRC checks are a *read* concern (verifying an existing archive's integrity). Creation writes fresh CRCs for each entry. If a downstream reader reports a CRC error on your encrypted.zip, the file was corrupted in transit — re-download or re-create it, and consider corrupted-zip-repair.
Why won't it accept my huge folder of files?
Two limits apply: the per-file size ceiling (Pro 500 MB, Pro+Media/Developer 2 GB) and per-job file counts (Pro 20, Pro+Media 100, Developer unlimited), plus practical browser memory for the in-memory Blob. Split large sets into smaller bundles or offload to the runner on paid tiers.
Is my data uploaded when something goes wrong?
No — never. Even on error, processing is local; the result panel's 0 bytes uploaded badge reflects the design. Failures throw client-side messages; your files and password don't leave the tab in any code path.
When should I use a different tool instead?
If you don't need encryption, use folder-to-zip or streaming-zip-builder (faster, free-tier eligible, no password). To inspect an existing archive's encryption use encrypted-archive-detector; to verify a password use archive-password-tester.
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.