diff --git a/crates/buzz-relay/src/api/managed_agents.rs b/crates/buzz-relay/src/api/managed_agents.rs index ccfcf0e901..f18eadcf35 100644 --- a/crates/buzz-relay/src/api/managed_agents.rs +++ b/crates/buzz-relay/src/api/managed_agents.rs @@ -121,12 +121,14 @@ pub async fn submit_aggregate( let retry_private_event; let dispatch_events: &[buzz_core::StoredEvent] = if commit.inserted { &commit.events - } else { + } else if !commit.head.active { // A tombstone may have committed before disconnect propagation failed. // Its exact retry must fan the durable head out again after repairing // that propagation; otherwise live Desktop sessions never learn it. retry_private_event = buzz_core::StoredEvent::new(commit.private_event.clone(), None); std::slice::from_ref(&retry_private_event) + } else { + &[] }; for stored in dispatch_events { crate::handlers::event::dispatch_persistent_event(