Can't install .zip plugins on child sites

Trying to upload a .zip plugin to a child site leads to a PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature error. I’m sure, ZIP file is accessible in the /wp-content/uploads/mainwp/0/bulk directory.

System info:

WordPress Check Required Detected Status

FileSystem Method = direct direct Pass
MultiSite Disabled =true true Pass
WordPress Memory Limit >=64M 40M Warning
WordPress Version >=6.2 6.8.3 Pass

PHP Required Detected Status

cURL Extension Enabled =true true Pass
cURL Timeout >=300 seconds 300 Pass
cURL Version >=7.29.0 8.5.0 Pass
Function `tmpfile` enabled N/A Enabled Pass
OpenSSL Version >=OpenSSL/1.1.0 OpenSSL/1.1.1w Pass
OpenSSL Working Status Yes Yes Pass
PCRE Backtracking Limit >=10000 1000000 Pass
PHP Allow URL fopen N/A YES
PHP Disabled Functions N/A No functions disabled.
PHP Exif Support N/A YES
PHP IPTC Support N/A YES
PHP Loaded Extensions N/A Core, PDO, PDO_ODBC, Phar, Reflection, SPL, SimpleXML, Zend OPcache, apache2handler, bcmath, begethook, bz2, calendar, ctype, curl, date, dba, dbase, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, memcache, mongodb, mysqli, mysqlnd, odbc, openssl, pcre, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, posix, pspell, random, redis, session, shmop, soap, sockets, sodium, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tideways_xhprof, tidy, timezonedb, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib
PHP Max Execution Time >=30 seconds 600 Pass
PHP Max Input Time >=30 seconds 600 Pass
PHP Memory Limit >=256M 268435456 Pass
PHP Post Max Size >=2M 1047527424 Pass
PHP Safe Mode Disabled =true true Pass
PHP Session enabled N/A Enabled Pass
PHP Upload Max Filesize >=2M 1047527424 Pass
PHP Version >=7.4 8.4.6 Pass
PHP XML Support N/A YES
SSL Extension Enabled =true true Pass
SSL Warnings = empty error:24070079:random number generator:RAND_write_file:Cannot open file
error:2406F079:random number generator:RAND_load_file:Cannot open fileWarning

MySQL Required Detected Status

MySQL Client Encoding N/A utf8mb4
MySQL Mode N/A NOT SET
MySQL Version >=5.0 5.7.21-20-beget-5.7.21-20-1-log Pass

Server Configuration Detected Value

Accept Content text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset Content N/A
Architecture 64 bit
Gateway Interface CGI/1.1
HTTPS ON
Memory Usage 6.36 MB
Operating System Linux
Request Time 1759913029
Server Protocol HTTP/1.1
Server self connect Response Test O.K.
Server Software Apache/2.4.63 (Unix)
User Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0) Gecko/20100101 Firefox/143.0

MainWP Dashboard Settings Detected Value

Abandoned plugins/themes tolerance 365
Cache control enabled No
Enable Uptime Monitoring No
MainWP Dashboard Version Latest: 5.4.0.23 | Detected: 5.4.0.23 Pass
MainWP legacy backups enabled No
Maximum number of pages to return
Maximum number of posts to return
Maximum simultaneous install and update requests3
Maximum simultaneous requests 4
Maximum simultaneous requests per ip1
Maximum simultaneous sync requests 8
Maximum simultaneous uptime monitoring requests (Default: 10)10
Minimum delay between requests 200
Minimum delay between requests to the same ip1000
Number of connected sites 1
Optimize data loading Yes
Plugin advanced automatic updates enabledNo
Primary Backup System API Backups
REST API enabled No
Site health monitoring enabled No
Theme advanced automatic updates enabledNo
Use WP Cron No
WP Core advanced automatic updates enabledNo

Extensions Version License Status

Dashboard Lock 5.0.3 Active Pass
MainWP Custom Dashboard Extension 5.0.1 Active Pass

Plugin Version Status

MainWP Dashboard 5.4.0.23 Active

Hey @seoshnik-km

Welcome to the MainWP Community!

Does this happen with any ZIP file you try to install?
And does this happen when trying to install on any child site, or just some?

Hi, @bojan

I tried 4 different ZIP files, one was a default Akismet from wordpress.org repo. I just installed the MainWP for testing, so I added only one child site.

Thanks for the update.

Is this MainWP Dashboard perhaps hosted on localhost, and the child site is webhosted?

If that’s not the case, and you are getting this issue regardless of the ZIP file you chose, it’s likely that a security measure on your Dashboard site is blocking the child sites from fetching that ZIP file.

In your system report, I don’t see any security plugins. However, other security rules can also impact this, e.g,. server firewalls, cloud proxies, or .htaccess rules on the Dashboard.

Can you temporarily disable those and see if that helps?

I contacted the hosting support, and they say there are no security functions on their side that can lead to this issue. I even tried to connect and upload ZIP plugin to clean WordPress installation and still got a PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature error…

1 Like

Thanks for trying that,@seoshnik-km.

Would you mind opening a private Help Desk ticket so we can collect some additional information & investigate further?

Please refer to this Community thread by its URL in the ticket.

Just to provide an update on this -

The Dashboard site has some kind of anti-bot protection.

So when a Child site requests the ZIP file from the Dashboard, it is getting blocked with an anti-bot challenge.

The user has confirmed that this is indeed happening on the hosting side and will handle it with their support.