VSFTPD upload error on some files and directories

HI.

I installed HestiaCP on a VPS server and configured my first user / domain name on it.

I wanted to reinstall several WordPress sites, but when I upload the files via FTP, I keep getting errors:

  • It can’t upload certain files (often the same ones)
  • It doesn’t upload/create folders on the server when they’re empty

I’m using vsftpd and I’ve tried several configuration changes, without being able to fix the problem.

I have feel that it has to be with files containing special characters or uppercase letters, for example.

Here are some examples of files that consistently cause problems:

  • wp-includes/Requests/Auth.php
  • wp-includes/Requests/Autoload.php
  • wp-includes/js/tinymce/plugins/colorpicker/plugin.js
  • wp-content/uploads/2025/06 (empty folder)
  • wp-content/uploads/2025/07 (empty folder)
  • wp-content/plugins/elementor/modules/ai/module.php

When I resend the affected files/folders a second time, it works without error. But I have to spend 10 minutes resending everything that didn’t go through the first time.

Here is what appear on Filezilla :

Command : MKD Requests Answer : 550 Create directory operation failed.
Command : CWD /home/*******/subfolder/wp-includes/Requests/src Answer: 550 Failed to change directory.
Command : SIZE /home/*****/subfolder/wp-includes/Requests/src/Auth.php Answer: 550 Could not get file size.
Command : PASV Answer: 227 Entering Passive Mode (**,**,***,***,46,243).
Command : STOR /home/******/subfolder/wp-includes/Requests/src/Auth.php Answer: 553 Could not create file.
Error: Critical error during file transfer

I tried with domain name user and with an additional ftp account created in Hestia Panel.

Here is my VSFTPD configuration file :

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_umask=022
anon_upload_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
dual_log_enable=YES
chroot_local_user=YES
pam_service_name=vsftpd
ftpd_banner=Welcome! Please note that all activity is logged.
userlist_enable=NO
tcp_wrappers=YES
force_dot_files=YES
ascii_upload_enable=YES
ascii_download_enable=YES
allow_writeable_chroot=YES
local_root=/srv/jail/%u
user_sub_token=%u
seccomp_sandbox=NO
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=12000
pasv_max_port=12100
max_per_ip=0
max_clients=0
use_localtime=NO
utf8_filesystem=YES
ssl_enable=YES
allow_anon_ssl=NO
require_ssl_reuse=NO
ssl_ciphers=ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
rsa_cert_file=/usr/local/hestia/ssl/certificate.crt
rsa_private_key_file=/usr/local/hestia/ssl/certificate.key

If you need any further information, just ask me.

Thank you for your help.

Hi,

How many simultaneous transfers do you have configured in FileZilla? I’m asking because that’s usually the main issue.

As an example, I tested uploading a WordPress site (8,255 files):

Simultaneous transfers: 1 → Failed transfers: 0
Simultaneous transfers: 5 → Failed transfers: 15
Simultaneous transfers: 10 → Failed transfers: 85

That said, uploading thousands of files via ftp is really inefficient. Instead, zip your site, upload the zip file and unzip it on the server. It takes less than a minute.

3 Likes

HI. Thank you for your help.

Before I saw your answer, I tried to reduce simultaneous transfers to check.

With 6 simultaneous transfers → ~100 failed transfers
With 4 simultaneous transfers → ~ 40 failed transfers
With 2 simultaneous transfers → ~ 10 failed transfers

So this is surely the solution.

However, I am surprised. I usually work with cPanel or Plesk, and I never saw this problem.

Just to know, Is there a reason specific to Hestia or VSFTPD that explains this?

Thank you.

If cPanel or Plesk uses vsftpd, you could share the conf they use. I’ve tried different vsftpd confs and always fail some transfers, so I can’t provide a solution. Anyway, as I said, you shouldn’t upload so many files using FTP (zip → upload → unzip).