temporalio/temporal · error

error determining continue-as-new task queue presence in inh

Error message

error determining continue-as-new task queue presence in inherited version: %w

What it means

Error "error determining continue-as-new task queue presence in inherited version: %w" thrown in temporalio/temporal.

Source

Thrown at service/history/workflow/mutable_state_impl.go:2783

	// 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

	// By default, the new run initiated by workflow ContinueAsNew of a Pinned run, will inherit the previous run's
	// version if the new run's Task Queue belongs to that version.
	// If the continue-as-new command says to use InitialVersioningBehavior AutoUpgrade, the new run will start as
	// AutoUpgrade in the first task and then assume the SDK-sent behavior on first workflow task completion.
	var inheritedPinnedVersion *deploymentpb.WorkerDeploymentVersion
	if previousExecutionState.GetEffectiveVersioningBehavior() == enumspb.VERSIONING_BEHAVIOR_PINNED &&
		command.GetInitialVersioningBehavior() == enumspb.CONTINUE_AS_NEW_VERSIONING_BEHAVIOR_UNSPECIFIED {
		inheritedPinnedVersion = worker_versioning.ExternalWorkerDeploymentVersionFromDeployment(previousExecutionState.GetEffectiveDeployment())
		newTQ := command.GetTaskQueue().GetName()
		if newTQ != previousExecutionInfo.GetTaskQueue() {
			newTQInPinnedVersion, err = IsWFTaskQueueInVersionDetector(ctx, ms.GetNamespaceEntry().ID().String(), newTQ, inheritedPinnedVersion)
			if err != nil {
				return nil, fmt.Errorf("error determining continue-as-new task queue presence in inherited version: %w", err)
			}
			if !newTQInPinnedVersion {
				inheritedPinnedVersion = nil
			}
		}
	}

	// Pinned override is inherited if Task Queue of new run is compatible with the override version.
	var pinnedOverride *workflowpb.VersioningOverride
	if o := previousExecutionInfo.GetVersioningInfo().GetVersioningOverride(); worker_versioning.OverrideIsPinned(o) {
		pinnedOverride = o
		newTQ := command.GetTaskQueue().GetName()
		if newTQ != previousExecutionInfo.GetTaskQueue() && !newTQInPinnedVersion {
			pinnedOverride = nil
		}
	} else if oneTimeTarget := worker_versioning.GetOverrideOneTimeTargetVersion(o); oneTimeTarget != nil {
		ms.logger.Warn("Unexpected one-time versioning override found during continue-as-new inheritance",
			tag.WorkflowNamespace(ms.GetNamespaceEntry().Name().String()),

View on GitHub (pinned to bde624efd1)

When it happens

Trigger: Thrown at service/history/workflow/mutable_state_impl.go:2783 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/dce63928b4c366b5. Report an issue: GitHub.