diff --git a/src/Marten/Events/Aggregation/CustomProjection.cs b/src/Marten/Events/Aggregation/CustomProjection.cs index 5434135d18..bff1881c72 100644 --- a/src/Marten/Events/Aggregation/CustomProjection.cs +++ b/src/Marten/Events/Aggregation/CustomProjection.cs @@ -376,9 +376,15 @@ async ValueTask ILiveAggregator.BuildAsync(IReadOnlyList eve var documentSessionBase = session as DocumentSessionBase ?? (DocumentSessionBase)session.DocumentStore.LightweightSession(); var slice = new EventSlice(default, session, events); - await ApplyChangesAsync(documentSessionBase, slice, cancellation).ConfigureAwait(false); - - ApplyMetadata(slice.Aggregate, events.Last()); + if (Lifecycle == ProjectionLifecycle.Live) + { + slice.Aggregate = await BuildAsync(session, slice.Aggregate, slice.Events()).ConfigureAwait(false); + ApplyMetadata(slice.Aggregate, events.Last()); + } + else + { + await ApplyChangesAsync(documentSessionBase, slice, cancellation).ConfigureAwait(false); + } return slice.Aggregate; }