diff --git a/controller/src/history.rs b/controller/src/history.rs index 89f96ea1..4405869a 100644 --- a/controller/src/history.rs +++ b/controller/src/history.rs @@ -274,9 +274,11 @@ impl History { Some(RefStatus::Errored(exception)) => { // We know that this invocation hasn't been completed yet, so we can // directly call set_exception on it. - invocation.set_exception(exception.clone()); - results.push((seq, Some(Err(exception.clone())))); - invocation.reported = true; + if !invocation.reported { + invocation.set_exception(exception.clone()); + results.push((seq, Some(Err(exception.clone())))); + invocation.reported = true; + } } Some(RefStatus::Invoked(invoked_seq)) => { if let Some(invocation) = self.invocations.get_mut(invoked_seq) {