dapr/dapr · error

failed to load workflow state: %w

Error message

failed to load workflow state: %w

What it means

Error "failed to load workflow state: %w" thrown in dapr/dapr.

Source

Thrown at pkg/runtime/wfengine/state/state.go:821

	for i := range metadata.GetSigningCertificateLength() {
		bulkReq.Keys[n] = getMultiEntryKeyName(sigcertKeyPrefix, i)
		n++
	}

	for i := range metadata.GetExternalSigningCertificateLength() {
		bulkReq.Keys[n] = getMultiEntryKeyName(extSigCertKeyPrefix, i)
		n++
	}

	for i := range metadata.GetSignatureLength() {
		bulkReq.Keys[n] = getMultiEntryKeyName(signatureKeyPrefix, i)
		n++
	}

	// Perform the request
	bulkRes, err := state.GetBulk(ctx, bulkReq, false)
	if err != nil {
		return nil, fmt.Errorf("failed to load workflow state: %w", err)
	}

	defer func() {
		// TODO: @joshvanl: remove in v1.16 where we will no longer have legacy
		// state parsing issues.
		if rerr := recover(); rerr != nil {
			wfLogger.Warnf("Found legacy workflow state, ignoring and overwriting with new storage API: %s; %v", actorID, rerr)
		}
	}()

	// Parse responses. If metadata declares N inbox or history entries but
	// the bulk GET returns nil Data for any of them, return an error so the
	// caller can retry the load. Silently skipping was the previous
	// behavior, but under state-store chaos (transient read failures) it
	// produces a workflow runtime state with truncated history; durabletask
	// then reports name=(unknown)/events=0 and the workflow strands on the
	// next save, which clobbers the metadata HistoryLength.
	var key string

View on GitHub (pinned to 74ad417027)

When it happens

Trigger: Thrown at pkg/runtime/wfengine/state/state.go:821 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of dapr/dapr@74ad417027 (2026-08-16). Data as JSON: /api/errors/c1dc295019295f7a. Report an issue: GitHub.