If Download all or a periodical download in Download Plugins and Themes in ZIP from Dashboard returns an empty ZIP, stops or shows an error, raise the WordPress memory limit first, for example with WP_MEMORY_LIMIT in wp-config.php. If it still fails, switch the ZIP library and set a writable temporary directory under Advanced Settings.
Symptom #
- Clicking Download all returns nothing, a truncated ZIP, or a white screen.
- A scheduled (periodical) download leaves an empty or missing file in the download folder.
- An admin notice reports that
RecursiveIteratorIteratororzlibis missing, or that the ZIP could not be created.
1. Raise the WordPress memory limit #
Packaging every plugin or theme into one archive uses server memory. The Tools section of the settings page (WPFactory > Download plugins and Themes) shows your current standard and admin memory limits. If they are low for the number of plugins or themes you have, raise them in wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
Add these above the line that says “That’s all, stop editing!” then retry the download. On very large sites, download plugins and themes separately rather than using both “Download all” buttons back to back.
2. Confirm the server requirements #
The plugin needs the RecursiveIteratorIterator class and the zlib extension (it checks for the gzopen() function) to build a ZIP. It verifies these when you click a download and shows a notice if either is missing. If you see that notice, ask your host to enable the zip and zlib PHP extensions.
3. Switch the ZIP library #
Under Advanced Settings, the ZIP library option lets you choose between ZipArchive and PclZip. If one library fails or is unavailable on your server, switch to the other and try again. ZipArchive is the default when it is available; PclZip is a pure-PHP fallback that works when the ZipArchive extension is not installed.
4. Set a writable temporary directory #
The plugin builds the archive in a temporary directory before sending it. If the default system temporary directory is not writable, the ZIP cannot be created. Under Advanced Settings, set Temporary directory to a path you know is writable (for example a folder inside wp-content/uploads). Leave it blank to use the automatically detected system temporary directory.
5. Download in smaller batches #
If the site is large enough that even a raised memory limit is not enough, avoid the single combined archive:
- Use the per-item Download ZIP links to grab plugins or themes individually.
- On Pro, use the Download ZIP bulk action on the Plugins screen to package a chosen subset instead of everything.
Note: the plugin’s “Download all” tools already skip Must-Use and Drop-in plugins, and periodical plugin downloads also skip single-file plugins. Missing items of those types are expected, not a failure. Download them individually from the Plugins screen.
Still stuck? #
If Download all still fails after these steps, our team can help. Open a ticket on the Download Plugins and Themes support forum with your PHP version, memory limits and the exact notice you see.