From 41534b215a32cfc08a39dd3fea598bbba37e3da0 Mon Sep 17 00:00:00 2001 From: Hare Date: Sun, 16 Aug 2026 20:22:37 +0900 Subject: [PATCH] merge-request: harden target update recovery --- crates/workspace-server/src/server.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/workspace-server/src/server.rs b/crates/workspace-server/src/server.rs index 27f6de80..0eb18daf 100644 --- a/crates/workspace-server/src/server.rs +++ b/crates/workspace-server/src/server.rs @@ -4046,12 +4046,17 @@ async fn scoped_complete_merge_request( Ok(outcome) => Ok(Json(outcome)), Err(error) => { if !target_was_already_updated { - let _ = repositories.update_merge_target( + if let Err(rollback_error) = repositories.update_merge_target( &mr.repository_id, selector, &input.result_commit, &input.target_commit, - ); + ) { + return Err(Error::InvalidInput(format!( + "merge finalization failed after target update and guarded rollback also failed: finalization={error}; rollback={rollback_error:?}" + )) + .into()); + } } Err(error.into()) }