diff --git a/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp b/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp index 1c1a8be5e81b..ab6f553e5b20 100644 --- a/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp +++ b/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp @@ -91,11 +91,12 @@ class TExecuteDistributedEraseTxUnit : public TExecutionUnit { for (const auto& rs : readSets) { NKikimrTxDataShard::TDistributedEraseRS body; Y_ABORT_UNLESS(body.ParseFromArray(rs.Body.data(), rs.Body.size())); - Y_ABORT_UNLESS(presentRows.contains(rs.Origin)); - const bool ok = Execute(txc, request, presentRows.at(rs.Origin), - DeserializeBitMap(body.GetConfirmedRows()), writeVersion, op->GetGlobalTxId()); - Y_ABORT_UNLESS(ok); + + auto confirmedRows = DeserializeBitMap(body.GetConfirmedRows()); + if (!Execute(txc, request, presentRows.at(rs.Origin), confirmedRows, writeVersion, op->GetGlobalTxId())) { + return EExecutionStatus::Restart; + } } }