Gitlab.com FTPS deploy to site not working for top-level domain overwite *only* (works for new directories)

I am attempting to use the Gitlab.com pipeline ci in order to build my site and deploy it to my GoDaddy hosting via FTPS. Right now everything is being done as dry-runs. If I attempt to transfer to a new directory from my top level domain (www.mysite.com/build) the command will execute successfully both on my local machine as well as in the Gitlab pipeline. However, if I attempt to overwrite the files from the top-level domain to actually update the site, it only works on my local but fails to connect from the Gitlab Pipeline.


**Command to transfer to a new directory:**
_(Dry-run executes fine from my Gitlab.com and from my local machine)_
lftp -e "set ftp:ssl-force; set ssl:verify-certificate no; mirror -R --dry-run build/ ; quit" -u $FTP_USER,$FTP_PASSWORD $FTP_HOST --debug

**Command to transfer to the top-level domain, overwriting existing code:**
_(Dry-run execute fine from my local machine but never manages to connect properly from Gitab.com)_
lftp -e "set ftp:ssl-force; set ssl:verify-certificate no; mirror -R --dry-run build/ / ; quit" -u $FTP_USER,$FTP_PASSWORD $FTP_HOST --debug

The culprit line appears to be `gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.`. If I don't try to use TLS it seems to work just fine.

Anyone have any thoughts? I have included the logs below with the --debug flag set.

Transfer to new directory (/build)

Gitlab.com (working)

$ lftp -e "set ftp:ssl-force; set ssl:verify-certificate no; mirror -R --dry-run build/ ; quit" -u $FTP_USER,$FTP_PASSWORD $FTP_HOST --debug
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 17:25. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PWD
<--- 257 "/" is your current location
---> PBSZ 0
---- CWD path to be sent is `/build'
<--- 200 PBSZ=0
---> CWD /build
<--- 550 Can't change directory to /build: No such file or directory
---- CWD path to be sent is `/build/amp'
---> CWD /build/amp
<--- 550 Can't change directory to /build/amp: No such file or directory
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<< FILES TRANSFERED-- OMITTED FOR BREVITY >>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Creating cache default...
Created cache
Job succeeded

Local Machine (working)

$ lftp -e "set ftp:ssl-force; set ssl:verify-certificate no; mirror -R --dry-run build/ ; quit" -u <my_user>@<my_domain>,<my_password> <my_domain>
mkdir -p ftp://<my_user>@<my_domain>:<my_password>@<my_domain>.com/build/
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<< FILES TRANSFERED-- OMITTED FOR BREVITY >>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    
Total: 48 directories, 299 files, 0 symlinks
New: 299 files, 0 symlinks
$



Transfer to top level domain (overwrite/update)

Gitlab.com **(not working)**

$ lftp -e "set ftp:ssl-force; set ssl:verify-certificate no; mirror -R --dry-run build/ / ; quit" -u $FTP_USER,$FTP_PASSWORD $FTP_HOST --debug
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 12:39. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PWD
<--- 257 "/" is your current location
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 Data protection level set to "private"
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,195,195)
---- Connecting data socket to (160.153.92.9) port 50115
---- Data connection established
---> LIST
<--- 150 Accepted data connection
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
**** Peer closed connection
---- Closing data socket
---- Closing control socket
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 12:40. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 Data protection level set to "private"
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,196,113)
---- Connecting data socket to (160.153.92.9) port 50289
---- Data connection established
---> LIST
<--- 150 Accepted data connection
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
**** Peer closed connection
---- Closing data socket
---- Closing control socket
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 12:40. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 Data protection level set to "private"
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,196,246)
---- Connecting data socket to (160.153.92.9) port 50422
---- Data connection established
---> LIST
<--- 150 Accepted data connection
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
**** Peer closed connection
---- Closing data socket
---- Closing control socket
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 12:41. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 Data protection level set to "private"
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,198,255)
---- Connecting data socket to (160.153.92.9) port 50943
---- Data connection established
---> LIST
<--- 150 Accepted data connection
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
**** Peer closed connection
---- Closing data socket
---- Closing control socket
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 12:42. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 Data protection level set to "private"
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,196,44)
---- Connecting data socket to (160.153.92.9) port 50220
---- Data connection established
---> LIST
<--- 150 Accepted data connection
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
**** Peer closed connection
---- Closing data socket
---- Closing control socket
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 12:44. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 Data protection level set to "private"
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,197,243)
---- Connecting data socket to (160.153.92.9) port 50675
---- Data connection established
---> LIST
<--- 150 Accepted data connection
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
**** Peer closed connection
---- Closing data socket
---- Closing control socket
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 12:46. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name '<my_domain>.com'
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 Data protection level set to "private"
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,197,36)
---- Connecting data socket to (160.153.92.9) port 50468
---- Data connection established
---> LIST
<--- 150 Accepted data connection
gnutls_record_recv: The TLS connection was non-properly terminated. Assuming EOF.
**** Peer closed connection
---- Closing data socket
---- Closing control socket

Local Machine (working)

$ lftp -e "set ftp:ssl-force; set ssl:verify-certificate no; mirror -R --dry-run build/ / ; quit" -u <my_user>@<my_domain>.com,<my_password> ftp://<my_domain>.com --debug
mkdir -p ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/%2F
---- Connecting to <my_domain>.com (160.153.92.9) port 21
<--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
<--- 220-You are user number 1 of 500 allowed.
<--- 220-Local time is now 12:27. Server port: 21.
<--- 220-This is a private system - No anonymous login
<--- 220 You will be disconnected after 15 minutes of inactivity.
---> FEAT
<--- 211-Extensions supported:
<---  EPRT
<---  IDLE
<---  MDTM
<---  SIZE
<---  MFMT
<---  REST STREAM
<---  MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
<---  MLSD
<---  AUTH TLS
<---  PBSZ
<---  PROT
<---  UTF8
<---  TVFS
<---  ESTA
<---  PASV
<---  EPSV
<---  SPSV
<---  ESTP
<--- 211 End.
---> AUTH TLS
<--- 234 AUTH TLS OK.
---> OPTS UTF8 ON
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name ‘<my_domain>.com’
<--- 200 OK, UTF-8 enabled
---> OPTS MLST type;size;modify;UNIX.mode;UNIX.uid;UNIX.gid;
<--- 200  MLST OPTS type;size;sizd;modify;UNIX.mode;UNIX.uid;UNIX.gid;unique;
---> USER <my_user>@<my_domain>.com
<--- 331 User <my_user>@<my_domain>.com OK. Password required
---> PASS <my_password>
<--- 230-Your bandwidth usage is restricted
<--- 230 OK. Current restricted directory is /
---> PWD
<--- 257 "/" is your current location
---> PBSZ 0
<--- 200 PBSZ=0
---> PROT P
<--- 200 Data protection level set to "private"
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,198,83)
---- Connecting data socket to (160.153.92.9) port 50771
---- Data connection established
---> LIST
<--- 150 Accepted data connection
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name ‘<my_domain>.com’
---- Got EOF on data connection
---- Closing data socket
<--- 226-Options: -a -l
<--- 226 15 matches total
---> TYPE I
<--- 200 TYPE is now 8-bit binary
---> MDTM .
<--- 550 I can only retrieve regular files
---> MDTM ..
<--- 550 I can only retrieve regular files
---> MDTM .ftpquota
<--- 213 20160818042222
---> MDTM .htaccess
<--- 213 20151121060928
---> MDTM cgi-bin
<--- 550 I can only retrieve regular files
---> MDTM css
<--- 550 I can only retrieve regular files
---> MDTM cssinstaglam
<--- 550 I can only retrieve regular files
---> MDTM favicon.ico
<--- 213 20151003060945
---> MDTM fonts
<--- 550 I can only retrieve regular files
---> MDTM iamdev
<--- 550 I can only retrieve regular files
---> MDTM img
<--- 550 I can only retrieve regular files
---> MDTM index.html
<--- 213 20151118040443
---> MDTM less
<--- 550 I can only retrieve regular files
---> MDTM svg
<--- 550 I can only retrieve regular files
---> MDTM zoescorner.net
<--- 550 I can only retrieve regular files
get -e -O ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/ file:<local_project_path>/build/.htaccess
get -e -O ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/ file:<local_project_path>/build/favicon.ico
get -e -O ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/ file:<local_project_path>/build/index.html
mkdir ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/amp
---- CWD path to be sent is `/amp'
---> CWD /amp
<--- 550 Can't change directory to /amp: No such file or directory
get -O ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/amp file:<local_project_path>/build/amp/index.html
chmod 755 ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/amp/index.html
---- CWD path to be sent is `/cssinstaglam'
---> CWD /cssinstaglam
<--- 250 OK. Current directory is /cssinstaglam
---> TYPE A
<--- 200 TYPE is now ASCII
---> PASV
<--- 227 Entering Passive Mode (160,153,92,9,196,111)
---- Connecting data socket to (160.153.92.9) port 50287
---- Data connection established
---> LIST
<--- 150 Accepted data connection
Certificate: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
 Issued by: EMAIL=ssl@p3plcpnl0953.prod.phx3.secureserver.net,CN=p3plcpnl0953.prod.phx3.secureserver.net
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: certificate common name doesn't match requested host name ‘<my_domain>.com’
---- Got EOF on data connection
---- Closing data socket
<--- 226-Options: -a -l
<--- 226 10 matches total
---> TYPE I
<--- 200 TYPE is now 8-bit binary
---> MDTM .
<--- 550 I can only retrieve regular files
---> MDTM ..
<--- 550 I can only retrieve regular files
---> MDTM .include_in_version_control
<--- 213 20151003060948
---> MDTM css
<--- 550 I can only retrieve regular files
---> MDTM favicon.ico
<--- 213 20151003060948
---> MDTM img
<--- 550 I can only retrieve regular files
---> MDTM index.html
<--- 213 20151117055333
---> MDTM js
<--- 550 I can only retrieve regular files
---> MDTM less
<--- 550 I can only retrieve regular files
---> MDTM libs
<--- 550 I can only retrieve regular files
get -e -O ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/cssinstaglam file:<local_project_path>/build/cssinstaglam/favicon.ico
get -e -O ftp://<my_user>%40<my_domain>.com:<my_password>@<my_domain>.com/cssinstaglam file:<local_project_path>/build/cssinstaglam/index.html
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<< FILES TRANSFERED-- OMITTED FOR BREVITY >>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Total: 48 directories, 299 files, 0 symlinks
New: 4 files, 0 symlinks
Modified: 295 files, 0 symlinks
To be removed: 7 directories, 5 files, 0 symlinks
---> QUIT
---- Closing control socket

First of all; If I look at your logs you seem to be having some SSL/TLS issues.

Second; Have a look here: Gitlab-ci issue

It seems like the -R option of lftp isn’t always working that well.

Try setting auto-confirm yes

set sftp:auto-confirm yes;

Hi @kladizkov – thanks for your advice. Unfortunately, that did not seem to address the issue-- the log appears to be the same as for the other non-working scenario.

Hi @stefanvangastel – my apologies for missing your reply earlier. Thanks very much for the advice. I did try your recommendation of swapping -R for --reverse and unfortunately it was not the silver bullet fix I needed. However, noting your shared link I am leaving it as --reverse to avoid that particular issue, so thanks for that.

I agree, it does, at least based on the log, seem to be a TLS issue. What’s weird is that it doesn’t exist if on the same domain I try to push files to a nonexistent subfolder, nor does the issue exist when I push locally from my own machine.

I’m going to keep banging my head on this a little bit more-- I’ll gladly accept any other suggestions anyone may have. Thanks so much for your help!