temporalio/temporal · error

error determining child task queue presence in inherited ver

Error message

error determining child task queue presence in inherited version: %w

What it means

Error "error determining child task queue presence in inherited version: %w" thrown in temporalio/temporal.

Source

Thrown at service/history/transfer_queue_active_task_executor.go:995

				sourceVersionStamp = worker_versioning.StampIfUsingVersioning(mutableState.GetMostRecentWorkerVersionStamp())
			}
		}

		// If there is a pinned override, then the effective version will be the same as the pinned override version.
		// If this is a cross-TQ child, we don't want to ask matching the same question twice, so we re-use the result from
		// the first matching task-queue-in-version check.
		newTQInPinnedVersion := false

		// Child of pinned parent will inherit the parent's version if the Child's Task Queue belongs to that version.
		if mutableState.GetEffectiveVersioningBehavior() == enumspb.VERSIONING_BEHAVIOR_PINNED {
			inheritedPinnedVersion = worker_versioning.ExternalWorkerDeploymentVersionFromDeployment(mutableState.GetEffectiveDeployment())
			newTQ := attributes.GetTaskQueue().GetName()
			if attributes.GetNamespaceId() != mutableState.GetExecutionInfo().GetNamespaceId() { // don't inherit pinned version if child is in a different namespace
				inheritedPinnedVersion = nil
			} else if newTQ != mutableState.GetExecutionInfo().GetTaskQueue() {
				newTQInPinnedVersion, err = worker_versioning.GetIsWFTaskQueueInVersionDetector(t.matchingRawClient, t.versionCache)(ctx, attributes.GetNamespaceId(), newTQ, inheritedPinnedVersion)
				if err != nil {
					return fmt.Errorf("error determining child task queue presence in inherited version: %w", err)
				}
				if !newTQInPinnedVersion {
					inheritedPinnedVersion = nil
				}
			}
		}

		// Pinned and one-time overrides are inherited if Task Queue of new run is compatible with the override version.
		if o := mutableState.GetExecutionInfo().GetVersioningInfo().GetVersioningOverride(); worker_versioning.GetOverrideTargetDeploymentVersion(o) != nil {
			inheritedVersioningOverride = o
			newTQ := attributes.GetTaskQueue().GetName()
			if newTQ != mutableState.GetExecutionInfo().GetTaskQueue() && !newTQInPinnedVersion ||
				attributes.GetNamespaceId() != mutableState.GetExecutionInfo().GetNamespaceId() { // don't inherit override if child is in a different namespace
				inheritedVersioningOverride = nil
			}
		}

		// If the parent has AutoUpgrade behavior, we populate the inherited auto upgrade info based on whether the child TQ is in the same deployment version as the parent TQ.

View on GitHub (pinned to bde624efd1)

When it happens

Trigger: Thrown at service/history/transfer_queue_active_task_executor.go:995 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of temporalio/temporal@bde624efd1 (2026-09-01). Data as JSON: /api/errors/e5275b4cfd049a14. Report an issue: GitHub.