Jonghyun-An opened a new pull request, #74145: URL: https://github.com/apache/airflow/pull/74145
Temporary FTP replies such as `450` raise `ftplib.error_temp`, but the sensor only catches `error_perm`. A sensor configured with `fail_on_transient_errors=False` therefore fails instead of waiting for its next poke. Apply the existing reply-code policy to temporary errors in both FTP and FTPS sensors. Known transient codes return `False` when configured to wait. The default fail-on-error behavior, unknown-code propagation and existing `550` handling remain. ### Testing - `pytest providers/ftp/tests/unit/ftp -q` in Breeze: 73 passed. - New focused cases: 8 failures and 4 guard passes against the original source; all 12 pass with the patch. Covers FTP/FTPS factories, sequential pokes, the default raise policy and unknown `430` replies. - Cross-layer cases use the real ftplib response parser and FTP/FTPS hooks with mocked socket transport, and verify MDTM/QUIT and connection cleanup. Regular and manual prek checks against `upstream/main` passed. - CI-selected provider unit suites (`amazon`, `common.compat`, `ftp`, `openlineage`) in parallel Breeze containers: 6525 passed, 141 skipped. This overlaps the FTP tests above. No live server or TLS handshake was exercised. Hook creation and context cleanup errors remain outside the catch; a server closing the control connection after `421` can still cause cleanup to fail. --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — OpenAI Codex (GPT-6) Generated-by: OpenAI Codex (GPT-6) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) --- Drafted-by: OpenAI Codex (GPT-6) (no human review before posting) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
