@@ -177,27 +177,25 @@ func (e *executableImpl) Execute() (retErr error) {
177177 e .Unlock ()
178178 return nil
179179 }
180-
181- ns , _ := e .namespaceRegistry .GetNamespaceByID (namespace .ID (e .GetNamespaceID ()))
180+ var namespaceName string
181+ ns , err := e .namespaceRegistry .GetNamespaceByID (namespace .ID (e .GetNamespaceID ()))
182+ if err == nil {
183+ namespaceName = ns .Name ().String ()
184+ }
182185 var callerInfo headers.CallerInfo
183186 switch e .priority {
184187 case ctasks .PriorityHigh :
185- callerInfo = headers .NewBackgroundCallerInfo (ns . Name (). String () )
188+ callerInfo = headers .NewBackgroundCallerInfo (namespaceName )
186189 default :
187190 // priority low or unknown
188- callerInfo = headers .NewPreemptableCallerInfo (ns . Name (). String () )
191+ callerInfo = headers .NewPreemptableCallerInfo (namespaceName )
189192 }
190193 ctx := headers .SetCallerInfo (
191194 metrics .AddMetricsContext (context .Background ()),
192195 callerInfo ,
193196 )
194197 e .Unlock ()
195198
196- if ! ns .IsOnCluster (e .clusterMetadata .GetCurrentClusterName ()) {
197- // Discard task if the namespace is not on the current cluster.
198- return consts .ErrTaskDiscarded
199- }
200-
201199 defer func () {
202200 if panicObj := recover (); panicObj != nil {
203201 err , ok := panicObj .(error )
@@ -234,6 +232,12 @@ func (e *executableImpl) Execute() (retErr error) {
234232 // Not doing it here as for certain errors latency for the attempt should not be counted
235233 }()
236234
235+ if ns != nil && ! ns .IsOnCluster (e .clusterMetadata .GetCurrentClusterName ()) {
236+ // Discard task if the namespace is not on the current cluster.
237+ e .taggedMetricsHandler = e .metricsHandler .WithTags (e .estimateTaskMetricTag ()... )
238+ return consts .ErrTaskDiscarded
239+ }
240+
237241 metricsTags , isActive , err := e .executor .Execute (ctx , e )
238242 e .taggedMetricsHandler = e .metricsHandler .WithTags (metricsTags ... )
239243
0 commit comments