FTP reply code 125 indicates that the data connection between client and server was already open when the transfer command (RETR, STOR, LIST, etc.) was issued, and the transfer is beginning immediately. In normal FTP operation, the server sends 150 to indicate it is about to open the data connection. Code 125 skips that step because the connection was pre-established. This typically occurs when the client issued a PORT or PASV command earlier and the data connection was set up before the transfer command. It is functionally equivalent to 150 but indicates the data channel was already waiting.
The client set up the data connection (active mode via PORT or passive mode via PASV/EPSV) before issuing the transfer command. Since the connection is already established, the server responds with 125 instead of 150 and begins transferring immediately.
Some FTP clients and servers support keeping the data connection open between consecutive transfers. When the next transfer command is issued, the existing data connection is reused and the server sends 125.
Code 125 is a normal informational reply. The file transfer has started and will complete with a 226 response when finished. No troubleshooting is required.
If you are seeing unexpected behavior, check whether your client is using active (PORT) or passive (PASV) mode. Passive mode is generally more reliable through firewalls and NAT.
curl -v --ftp-pasv ftp://ftp.example.com/file.txt
The server is ready to transfer the file and is about to open the data connection.
The file transfer completed successfully and the data connection is being closed.
The server could not establish the data connection needed for the file transfer.
The data connection was closed unexpectedly and the file transfer was aborted.