diff --git a/fdbserver/DataDistributionTracker.actor.cpp b/fdbserver/DataDistributionTracker.actor.cpp index e5d695f24f..947bbf7bb6 100644 --- a/fdbserver/DataDistributionTracker.actor.cpp +++ b/fdbserver/DataDistributionTracker.actor.cpp @@ -621,8 +621,10 @@ ACTOR Future shardTracker( wait( delay(0, TaskPriority::DataDistribution) ); } } catch (Error& e) { - if (e.code() != error_code_actor_cancelled) - self->output.sendError(e); // Propagate failure to dataDistributionTracker + // If e is broken_promise then self may have already been deleted + if (e.code() != error_code_actor_cancelled && e.code() != error_code_broken_promise) { + self->output.sendError(e); // Propagate failure to dataDistributionTracker + } throw e; } }