pierrejeambrun commented on code in PR #61550:
URL: https://github.com/apache/airflow/pull/61550#discussion_r3281945940
##########
airflow-core/src/airflow/api_fastapi/core_api/routes/public/dag_run.py:
##########
@@ -615,16 +633,25 @@ def trigger_dag_run(
triggering_user_name=user.get_name(),
state=DagRunState.QUEUED,
partition_key=params["partition_key"],
+ bundle_version=body.bundle_version,
+ dag_version=resolved_dag_version,
session=session,
)
+
+ dag_run_note = body.note
+ if dag_run_note:
+ current_user_id = user.get_id()
+ dag_run.note = (dag_run_note, current_user_id)
+ return dag_run
+
except (ParamValidationError, ValueError) as e:
raise HTTPException(status.HTTP_400_BAD_REQUEST, str(e)) from e
-
- dag_run_note = body.note
- if dag_run_note:
- current_user_id = user.get_id()
- dag_run.note = (dag_run_note, current_user_id)
- return dag_run
+ except AirflowNotFoundException as e:
+ raise HTTPException(status.HTTP_404_NOT_FOUND, str(e))
+ except AirflowException as e:
Review Comment:
Carry-over from my Mar 6 comment. The catch is generic 400 but it forwards
`str(e)`, so messages like "Cannot create DagRun ... because the dag is not
serialized" leak through as a 400. I think we need to narrow the catch only to
the user specific exception raised by `create_dagrun`. (by asserting the
message, etc... before re-raising.
--
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]