amoghrajesh commented on code in PR #73030:
URL: https://github.com/apache/airflow/pull/73030#discussion_r4060007723


##########
airflow-core/src/airflow/api_fastapi/execution_api/routes/task_instances.py:
##########
@@ -670,7 +670,11 @@ def _create_ti_state_update_query_and_update_state(
         query = query.values(state=updated_state, next_method=None, 
next_kwargs=None)
 
         if updated_state == TaskInstanceState.FAILED:
-            # This is the only case needs extra handling for 
TITerminalStatePayload
+            if isinstance(ti_patch_payload, TITerminalStatePayload) and 
ti_patch_payload.retry_reason:
+                failed_retry_reason: str | None = 
ti_patch_payload.retry_reason[:500]

Review Comment:
   Fixed on #73027. `_finalize_task_failure` now caps the base reason at `500 - 
len(suffix)` before appending, so the suffix survives any reason length; the 
`[:500]` here stays as a backstop for the plain FAIL path, which has no suffix. 
Pinned by a test using a 600-character reason that asserts both `len == 500` 
and `endswith("; retries exhausted (3 of 3)")` — I checked it fails on the old 
form.
   



##########
airflow-core/tests/unit/api_fastapi/execution_api/versions/head/test_task_instances.py:
##########
@@ -2446,6 +2446,72 @@ def test_ti_update_state_to_failed_table_check(self, 
client, session, create_tas
         assert ti.next_kwargs is None
         assert ti.duration == 3600.00
 
+    def test_ti_update_state_to_failed_persists_retry_reason(self, client, 
session, create_task_instance):

Review Comment:
   Superseded by your own follow-up on #73027 — you measured that cadwyn 
doesn't reach through the `TIStateUpdate` discriminated union, so the route 
validates against the head models whatever version is pinned, and the boundary 
test would fail today if written. Leaving it out on that basis. The 
supervisor-side gate does bind and is covered by 
`TestRealBundleRetryReasonUpgrade` in `test_migrator.py`.
   



-- 
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