antonio-mello-ai opened a new pull request, #63475: URL: https://github.com/apache/airflow/pull/63475
## Summary - Add a dedicated `response_timeout` parameter to `HITLOperator` that controls how long the `HITLTrigger` waits for a human response - This separates the human-response wait window from `BaseOperator.execution_timeout`, which wraps the entire `execute()` method and can kill the task before `defer()` is reached - For backward compatibility, if `execution_timeout` is set without `response_timeout`, it is automatically migrated with a deprecation warning and `execution_timeout` is cleared ## Root Cause `HITLOperator` reused `BaseOperator.execution_timeout` for two conflicting purposes: 1. **BaseOperator behavior**: wraps `execute()` in a timeout that kills the task 2. **HITL trigger timeout**: passed to `HITLTrigger` as the human response wait window When `execution_timeout` is short (or notifiers are slow), the BaseOperator timeout fires **before** `self.defer()` is reached, killing the task with `AirflowTaskTimeout` instead of deferring. ## Test Plan - [x] New test: `response_timeout` correctly passed to trigger - [x] New test: `execution_timeout` backward compatibility emits deprecation warning and migrates - [x] New test: both timeouts work together when `execution_timeout > response_timeout` - [x] Updated existing timeout tests to use `response_timeout` - [x] All 78 existing tests pass (1 skipped) - [x] All pre-commit hooks pass (`prek`) Closes #55866 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.6 <[email protected]> -- 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]
