Ese error "Connection Closed Gracefully" en IdFTP 9.0 (Indy Components en Delphi/C++ Builder) significa lo siguiente, dicho sin rodeos:
✅ El servidor FTP cerró la conexión de forma normal y voluntaria — no hubo error de red ni fallo del cliente, pero el servidor decidió que ya no necesitaba mantener la conexión abierta.
�� ¿CUÁNDO pasa esto?
Las causas más comunes:
Tiempo de inactividad (timeout)
El servidor FTP te desconectó porque estuviste demasiado tiempo sin enviar comandos (como NOOP o listar/subir/bajar).
Terminaste una operación y el servidor corta después
Algunos servidores cortan automáticamente tras completar ciertas operaciones si no pedís mantener la sesión.
Agregá un NOOP cada cierto tiempo si vas a mantener la sesión abierta:
Modo pasivo o activo mal configurado
Si el modo de conexión está mal, el servidor puede cerrar la conexión luego de intentar una transferencia fallida.
Desconexión intencional desde el servidor (config)
Algunos servidores están configurados para permitir solo un número limitado de comandos por sesión o tienen límites estrictos de tiempo.
Cierre manual de la sesión
Si llamás a Disconnect() justo después de una operación, este error puede aparecer como parte del cierre.
revisa la propiedad TIMEOUT en el componente, podria ser eso?
y ponle el modo PASIVO ese modo suele ser el habitual mas que el activo
ftBinary está correctamente declarado (normalmente definido en la unidad IdFTP o IdFTPCommon)
quizas (y digo quizas) tengas que usar esto en los units
Código Delphi
[-]uses
IdAllFTPListParsers;
yo recuerdo que no me funcionaba en C++ Builder y tuve que incluirlo en los includes