0 votes
by (1.2k points)

Connecting through FTP with SSL, our customer gets the following error message:

450 Transfer aborted. Link to file server lost

Here is the full log.

I'm rather clueless. Google did not show me any meaningful results.

Do you have any idea what could be the issue here?

Applies to: Rebex FTP/SSL

1 Answer

+1 vote
by (144k points)
  • We have not seen this error yet. However, it actually comes from the FTP server, so it would be useful to check out corresponding entries in the server's log files, to see why it reported this error to the FTP client.

  • It looks like you use TLS 1.3 already. This is still a new protocol, and interoperability issues are still being sorted out, both by Rebex and other vendors. To determine whether this issue has anything to do with TLS 1.3, it might be useful to temporarily switch to TLS 1.2 to see whether this makes this issue disappear.

  • Additionally, it might be useful to try using the latest version of Rebex FTP/SSL, 2020 R3, with many improvements in the TLS 1.3 core.

by (1.9k points)
edited by
hello.

I hope my case helps you.

For reference, some servers may respond too late for uploads.
So, if the client closes the data channel before the server cleans the upload data, you may be getting a 450 error. (especially IIS)

So after uploading to ftp stream, after doing ftpstream.Flush()
Execute the code below:

using (var ftpStream = ftp.GetUploadStream(filename))
{
  // todo upload
  ftpStream.Flush();
}

for (int r = 0; r < 30; r++)
{
if (ftp.State == FtpState.Ready)
{
break;
}
Thread.Sleep(10);
DEBUGLOG($"UPLOAD FTP STATE : {ftp.State}");
}

Or, after flushing, it might be a good idea to give it some time.
by (144k points)
Don't purchase a hosting package yet - we'll first try some tweaks. If that doesn't lead anywhere, purchasing the package might be a good option, and I'm sure we can give you a discount as a compensation for your next renewal.

For now, try enabling these options before connecting to the server:

ftp.Settings.PauseBeforeUploadClose = true;
ftp.Settings.EnableBrokenShutdownWorkaround = true;

In case these don't have any effect on the issue, please send us a new communication log (at the same verbosity as the last one).
by (1.2k points)
Just set these two properties to "true" and tried again with active TLS 1.3.

And it really works now, without any error messages. Don't know whether this is any slower now, but at least it works.

Thanks a million times for your help, Lukas!
by (144k points)
Great, thanks for testing! Try removing the PauseBeforeUploadClose option now (or set it to false). I guess that the other option is what's important. It should rather be called something like "Enable very strict TLS 1.3 closure alert handling", and I think we should make it the default in future version. Thanks for bringing this to our attention!
by (1.2k points)
Thanks again. Setting only the "EnableBrokenShutdownWorkaround" to "true" works just great with TLS 1.3.
...