{"record":{"id":"f5f7c5073c92ff9f","repo":"temporalio/temporal","slug":"error-describing-task-queue-with-name-s-s","errorCode":null,"errorMessage":"error describing task queue with name %s: %s","messagePattern":"error describing task queue with name (.+?): (.+?)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"service/worker/workerdeployment/version_activities.go","lineNumber":172,"sourceCode":"\n// CheckIfTaskQueuesHavePollers returns true if any of the given task queues has any pollers\nfunc (a *VersionActivities) CheckIfTaskQueuesHavePollers(ctx context.Context, args *deploymentspb.CheckTaskQueuesHavePollersActivityArgs) (bool, error) {\n\tversionStr := worker_versioning.ExternalWorkerDeploymentVersionToString(worker_versioning.ExternalWorkerDeploymentVersionFromVersion(args.WorkerDeploymentVersion))\n\tfor tqName, tqTypes := range args.TaskQueuesAndTypes {\n\t\tres, err := a.MatchingClient.DescribeTaskQueue(ctx, &matchingservice.DescribeTaskQueueRequest{\n\t\t\tNamespaceId: a.namespace.ID().String(),\n\t\t\tDescRequest: &workflowservice.DescribeTaskQueueRequest{\n\t\t\t\tNamespace:      a.namespace.Name().String(),\n\t\t\t\tTaskQueue:      &taskqueuepb.TaskQueue{Name: tqName, Kind: enumspb.TASK_QUEUE_KIND_NORMAL},\n\t\t\t\tApiMode:        enumspb.DESCRIBE_TASK_QUEUE_MODE_ENHANCED,\n\t\t\t\tVersions:       &taskqueuepb.TaskQueueVersionSelection{BuildIds: []string{versionStr}},\n\t\t\t\tReportPollers:  true,\n\t\t\t\tTaskQueueType:  enumspb.TASK_QUEUE_TYPE_WORKFLOW,\n\t\t\t\tTaskQueueTypes: tqTypes.Types,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn false, fmt.Errorf(\"error describing task queue with name %s: %s\", tqName, err)\n\t\t}\n\t\ttypesInfo := res.GetDescResponse().GetVersionsInfo()[versionStr].GetTypesInfo()\n\t\tif len(typesInfo[int32(enumspb.TASK_QUEUE_TYPE_WORKFLOW)].GetPollers()) > 0 {\n\t\t\treturn true, nil\n\t\t}\n\t\tif len(typesInfo[int32(enumspb.TASK_QUEUE_TYPE_ACTIVITY)].GetPollers()) > 0 {\n\t\t\treturn true, nil\n\t\t}\n\t\tif len(typesInfo[int32(enumspb.TASK_QUEUE_TYPE_NEXUS)].GetPollers()) > 0 {\n\t\t\treturn true, nil\n\t\t}\n\t}\n\treturn false, nil\n}\n\nfunc (a *VersionActivities) GetVersionDrainageStatus(ctx context.Context, version *deploymentspb.WorkerDeploymentVersion) (*deploymentpb.VersionDrainageInfo, error) {\n\tlogger := activity.GetLogger(ctx)\n\tresponse, err := a.WorkerDeploymentClient.GetVersionDrainageStatus(ctx, a.namespace, worker_versioning.WorkerDeploymentVersionToStringV31(version))","sourceCodeStart":154,"sourceCodeEnd":190,"githubUrl":"https://github.com/temporalio/temporal/blob/bde624efd13fbd3843654058db6d9c716166318b/service/worker/workerdeployment/version_activities.go#L154-L190","documentation":"CheckIfTaskQueuesHavePollers calls DescribeTaskQueue for each task queue of a worker deployment version to see if any poller is attached. A transport/RPC failure while describing a queue is wrapped with the queue name and underlying error, aborting the deployment version state evaluation.","triggerScenarios":"DescribeTaskQueue failing (timeout, service unavailable, namespace not found, permission denied) while the version checking activity evaluates reachability of a deployment's task queues.","commonSituations":"Frontend/history outage or overload; task queue name from a stale/typo'd Build ID; namespace deleted or auth token expired; long DescribeTaskQueue latency hitting activity timeouts.","solutions":["Inspect the wrapped inner error and fix its root cause (connectivity, auth, namespace)","Retry the activity; the worker-deployment workflow retries activities on transient errors","Verify the task queue names / deployment series configuration are current, not stale","Increase activity timeouts if DescribeTaskQueue is consistently slow under load"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"ok, err := deployment.CheckIfTaskQueuesHavePollers(ctx, ...)\nif err != nil {\n    var svcErr *serviceerror.Unavailable\n    if errors.As(err, &svcErr) { return retryable(err) } // transient, let activity retry\n    return err\n}","preventionTips":["Keep activity retry policies with backoff for DescribeTaskQueue calls","Monitor frontend availability; task queue describes fail during outages","Ensure AWS credentials/region are resolvable where signing-based ES or IAM auth is used"],"tags":["worker-deployment","task-queue","rpc","network"],"backgroundTag":"describe-task-queue-failed","analyzedSha":"bde624efd13fbd3843654058db6d9c716166318b","analyzedAt":"2026-09-01T07:18:39.080Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}