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]

Reply via email to