diff --git a/src/internal/connector/exchange/exchange_data_collection.go b/src/internal/connector/exchange/exchange_data_collection.go index 0d4d53c04..e168ed082 100644 --- a/src/internal/connector/exchange/exchange_data_collection.go +++ b/src/internal/connector/exchange/exchange_data_collection.go @@ -198,14 +198,6 @@ func (col *Collection) streamItems(ctx context.Context) { semaphoreCh := make(chan struct{}, urlPrefetchChannelBufferSize) defer close(semaphoreCh) - updaterMu := sync.Mutex{} - errUpdater := func(user string, err error) { - updaterMu.Lock() - defer updaterMu.Unlock() - - errs = support.WrapAndAppend(user, err, errs) - } - // delete all removed items for id := range col.removed { semaphoreCh <- struct{}{} @@ -231,6 +223,14 @@ func (col *Collection) streamItems(ctx context.Context) { }(id) } + updaterMu := sync.Mutex{} + errUpdater := func(user string, err error) { + updaterMu.Lock() + defer updaterMu.Unlock() + + errs = support.WrapAndAppend(user, err, errs) + } + // add any new items for id := range col.added { if col.ctrl.FailFast && errs != nil { @@ -273,7 +273,7 @@ func (col *Collection) streamItems(ctx context.Context) { return } - errUpdater(user, err) + errUpdater(user, support.ConnectorStackErrorTraceWrap(err, "fetching item")) return }