FTP (not Alternative, no advanced options) on Windows 10 doesn’t QUIT session. Visible in netstat -ano | findstr :21
or reading FileZilla Server log. .110 does
<Date/Time> Info [Type] Message
<3/20/2025 9:16:57 AM> FTP Session 38 127.0.0.1 duplicati [Command] SIZE /test 2/duplicati-b8193c42f1a4e41cfb0ba80ecef4f493e.dblock.zip
<3/20/2025 9:16:57 AM> FTP Session 38 127.0.0.1 duplicati [Response] 213 770
<3/20/2025 9:16:57 AM> FTP Session 38 127.0.0.1 duplicati [Command] EPSV
<3/20/2025 9:16:57 AM> FTP Session 38 127.0.0.1 duplicati [Response] 229 Entering Extended Passive Mode (|||56123|)
<3/20/2025 9:16:57 AM> FTP Session 38 127.0.0.1 duplicati [Command] RETR /test 2/duplicati-b8193c42f1a4e41cfb0ba80ecef4f493e.dblock.zip
<3/20/2025 9:16:57 AM> FTP Session 38 127.0.0.1 duplicati [Response] 150 Starting data transfer.
<3/20/2025 9:16:57 AM> FTP Session 38 127.0.0.1 duplicati [Response] 226 Operation successful
<3/20/2025 9:16:58 AM> FTP Session 38 127.0.0.1 duplicati [Command] QUIT
<3/20/2025 9:16:58 AM> FTP Session 38 127.0.0.1 duplicati [Response] 221 Goodbye.
<3/20/2025 9:16:58 AM> FTP Server [Status] Session 38 ended gracefully.
but .111 does
<Date/Time> Info [Type] Message
<3/20/2025 9:21:58 AM> FTP Session 39 127.0.0.1 duplicati [Command] SIZE /test 2/duplicati-b8193c42f1a4e41cfb0ba80ecef4f493e.dblock.zip
<3/20/2025 9:21:58 AM> FTP Session 39 127.0.0.1 duplicati [Response] 213 770
<3/20/2025 9:21:58 AM> FTP Session 39 127.0.0.1 duplicati [Command] EPSV
<3/20/2025 9:21:58 AM> FTP Session 39 127.0.0.1 duplicati [Response] 229 Entering Extended Passive Mode (|||56303|)
<3/20/2025 9:21:58 AM> FTP Session 39 127.0.0.1 duplicati [Command] RETR /test 2/duplicati-b8193c42f1a4e41cfb0ba80ecef4f493e.dblock.zip
<3/20/2025 9:21:58 AM> FTP Session 39 127.0.0.1 duplicati [Response] 150 Starting data transfer.
<3/20/2025 9:21:58 AM> FTP Session 39 127.0.0.1 duplicati [Response] 226 Operation successful
Above did testing on CLI because my .110 GUI is held for a reported problem, plus CLI is really easy for me to switch versions on by just changing Duplicati .exe path.
I still haven’t seen the reported verification error though. Might be testing differently.
EDIT 1:
Testing in GUI, Test connection
does not cause a leftover. Verify files
does.
Testing with BackendTool put, get, list, delete, all of them seem to end with a QUIT.
EDIT 2:
The problem was originally found somewhat accidentally when CLI backup did this:
Backup started at 3/20/2025 8:49:47 AM
Checking remote backup ...
Listing remote folder ...
Listing remote folder ...
Listing remote folder ...
Listing remote folder ...
Listing remote folder ...
Listing remote folder ...
The operation Backup has failed with error: Code: 421 Message: Too many active connections, try again later => Code: 421 Message: Too many active connections, try again later
FluentFTP.Exceptions.FtpAuthenticationException: Code: 421 Message: Too many active connections, try again later
I knew something was going wrong when listing a local FTP server was retrying…
EDIT 3:
BackendTester can’t make it through a default run with 3 session connection limit.
[10:28:18 277] Starting run no 3
[10:28:18 345] Unittest failed: FluentFTP.Exceptions.FtpAuthenticationException: Code: 421 Message: Too many active connections, try again later
at FluentFTP.AsyncFtpClient.Authenticate(String userName, String password, String account, CancellationToken token)
at FluentFTP.AsyncFtpClient.Authenticate(CancellationToken token)
at FluentFTP.AsyncFtpClient.Connect(Boolean reConnect, CancellationToken token)
at FluentFTP.AsyncFtpClient.Connect(CancellationToken token)
at Duplicati.Library.Backend.FTP.CreateClient(CancellationToken cancellationToken, Nullable`1 cwdFlag)
at Duplicati.Library.Backend.FTP.TestAsync(CancellationToken cancellationToken)
at Duplicati.Library.Utility.Utility.Await(Task task)
at Duplicati.CommandLine.BackendTester.Program.Run(List`1 args, Dictionary`2 options, Boolean first)
at Duplicati.CommandLine.BackendTester.Program.Main(String[] _args)
EDIT 4:
Testing with SFTP, BackendTester seems prone to connection buildup as far back as 2.0.8.1. I also tripped on a new Test connection
bug, which I’ll report on 2.1.0.110.
EDIT 5:
Or maybe not, as it seems to have gone into hiding. Anyway, .111 and .110 were showing a Test connection
popup saying something like A task was canceled
. Fortunately this didn’t seem to prevent actually using the SFTP destination.