diff --git a/packages/nx/src/native/db/connection.rs b/packages/nx/src/native/db/connection.rs index ef134952982..1e9e948990c 100644 --- a/packages/nx/src/native/db/connection.rs +++ b/packages/nx/src/native/db/connection.rs @@ -91,17 +91,12 @@ impl NxDbConnection { transaction_operation: impl Fn(&Connection) -> rusqlite::Result, ) -> Result { if let Some(conn) = self.conn.as_mut() { - let transaction = retry_db_operation_when_busy!(conn.transaction()) - .map_err(|e| anyhow::anyhow!("DB transaction error: {:?}", e))?; - - let result = transaction_operation(&transaction) - .map_err(|e| anyhow::anyhow!("DB transaction operation error: {:?}", e))?; - - transaction - .commit() - .map_err(|e| anyhow::anyhow!("DB transaction commit error: {:?}", e))?; - - Ok(result) + retry_db_operation_when_busy!(conn.transaction().and_then(|tx| { + let result = transaction_operation(&tx)?; + tx.commit()?; + Ok(result) + })) + .map_err(|e| anyhow::anyhow!("DB transaction error: {:?}", e)) } else { anyhow::bail!("No database connection available") }