122
}
123
125
>
metrics.ReplicationTasksErrorByType.With(e.MetricsHandler).Record(
126
>
1,
127
>
metrics.OperationTag(metrics.SyncHSMTaskScope),
128
>
metrics.NamespaceTag(e.NamespaceName()),
129
>
metrics.ServiceErrorTypeTag(err),
130
>
)
131
>
if errors.Is(err, consts.ErrDuplicate) {
132
e.MarkTaskDuplicated()
133
return nil
134
}
136
>
switch retryErr := err.(type) {
137
case nil, *serviceerror.NotFound:
138
return nil
140
>
namespaceName, _, nsError := e.GetNamespaceInfo(headers.SetCallerInfo(
141
>
context.Background(),
142
>
callerInfo,
143
>
), e.NamespaceID, e.WorkflowID)
144
>
if nsError != nil {
145
return err
146
}
148
>
defer cancel()
149
>
150
>
if doContinue, resendErr := e.Resend(
151
>
ctx,
152
>
e.SourceClusterName(),
153
>
retryErr,
154
>
ResendAttempt,
155
>
); resendErr != nil || !doContinue {
156
return err
157
}