This is an automated email from the ASF dual-hosted git repository.
vincbeck pushed a commit to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-3-test by this push:
new 2864d969d85 Remove redundant session.commit() calls in FastAPI route
handlers (#69495) (#69620)
2864d969d85 is described below
commit 2864d969d85c52aa8aacfa3071157ffb8efa9339
Author: Pierre Jeambrun <[email protected]>
AuthorDate: Wed Jul 8 19:07:44 2026 +0200
Remove redundant session.commit() calls in FastAPI route handlers (#69495)
(#69620)
The database session in the FastAPI layer is injected via the SessionDep
dependency, which automatically commits the transaction when a request
completes successfully. Explicitly calling session.commit() inside the route
handler is redundant and circumvents the dependency's intended transaction
lifecycle management. This brings the route handlers in line with the codebase
guideline that prohibits functions accepting a session parameter from calling
commit.
(cherry picked from commit 5e23c6a0cc8d5d3ca9d329b7b3e4c3c87deee2e1)
Co-authored-by: Kushagra Gupta <[email protected]>
---
.../src/airflow/api_fastapi/core_api/routes/public/backfills.py | 1 -
airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py | 2 --
airflow-core/src/airflow/api_fastapi/execution_api/routes/hitl.py | 1 -
airflow-core/src/airflow/api_fastapi/execution_api/routes/xcoms.py | 1 -
4 files changed, 5 deletions(-)
diff --git
a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/backfills.py
b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/backfills.py
index 70c353fb7a2..dcfba919465 100644
--- a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/backfills.py
+++ b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/backfills.py
@@ -136,7 +136,6 @@ def pause_backfill(backfill_id: NonNegativeInt, session:
SessionDep) -> Backfill
raise HTTPException(status.HTTP_409_CONFLICT, "Backfill is already
completed.")
if b.is_paused is False:
b.is_paused = True
- session.commit()
return b
diff --git
a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
index 2ad11a245d6..ccb2c3dd77f 100644
--- a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
+++ b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
@@ -243,8 +243,6 @@ def update_hitl_detail(
task_instance=locked_ti,
session=session,
)
-
- session.commit()
return HITLDetailResponse.model_validate(hitl_detail_model)
diff --git a/airflow-core/src/airflow/api_fastapi/execution_api/routes/hitl.py
b/airflow-core/src/airflow/api_fastapi/execution_api/routes/hitl.py
index 802b09502e0..74cda44efe7 100644
--- a/airflow-core/src/airflow/api_fastapi/execution_api/routes/hitl.py
+++ b/airflow-core/src/airflow/api_fastapi/execution_api/routes/hitl.py
@@ -131,7 +131,6 @@ def update_hitl_detail(
hitl_detail_model.chosen_options = payload.chosen_options
hitl_detail_model.params_input = payload.params_input
session.add(hitl_detail_model)
- session.commit()
return HITLDetailResponse.from_hitl_detail_orm(hitl_detail_model)
diff --git a/airflow-core/src/airflow/api_fastapi/execution_api/routes/xcoms.py
b/airflow-core/src/airflow/api_fastapi/execution_api/routes/xcoms.py
index 9ab8eb20071..0cb6ccb23ce 100644
--- a/airflow-core/src/airflow/api_fastapi/execution_api/routes/xcoms.py
+++ b/airflow-core/src/airflow/api_fastapi/execution_api/routes/xcoms.py
@@ -481,5 +481,4 @@ def delete_xcom(
XComModel.map_index == map_index,
)
session.execute(query)
- session.commit()
return {"message": f"XCom with key: {key} successfully deleted."}