shivaam opened a new issue, #75531:
URL: https://github.com/apache/airflow/issues/75531

   ### Under which category would you file this issue?
   Airflow Core (API, UI)
   
   ### Apache Airflow version
   main (`57a4751c967`)
   
   ### What happened and how to reproduce it?
   `PATCH .../taskInstances/{task_id}/{map_index}/hitlDetails` records the 
response whenever the
   request has none yet. It resumes the task only if the task is still 
`awaiting_input` or `deferred`.
   
   When `response_timeout` passes with no `defaults`, the scheduler fails the 
task without writing a
   response. A response submitted afterwards is therefore stored and answered 
with 200, and the UI shows
   "response successful", but nothing resumes. The task stays failed, and the 
history shows a decision
   that never took effect.
   
   Reproduce:
   1. `ApprovalOperator(subject="...", 
response_timeout=timedelta(seconds=20))`, with no `defaults`
      and `retries=0`.
   2. Open its Required Actions page, then wait for the task to fail on timeout 
without reloading.
   3. Click Approve in the page that is still open. The UI reports success and 
the history records the
      approval. The task and its downstream tasks remain failed or 
`upstream_failed`.
   
   A freshly opened page disables the buttons. Only a page loaded before the 
timeout lets this through,
   and the API accepts it from any client.
   
   ### What you think should happen instead?
   A response to a request whose task is no longer waiting for it is refused, 
for example with 409, with
   a message that the request expired or the task stopped waiting. It should 
not be recorded as a
   decision.
   
   ### Anything else?
   - The task failing and not reviving is correct; the problem is the success 
feedback and the stored
     answer.
   - The new `request_created_at` check (#74688) refuses answers to a 
*replaced* request, but not to
     one whose task has stopped waiting.
   - This applies to every HITL operator, not one SDK.
   
   ---
   Drafted-by: Claude Code (Opus 5.5) (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]

Reply via email to