dapr/dapr · error · transientKeyMismatchError

workflow '%s': history key '%s' declared in metadata (histor

Error message

workflow '%s': history key '%s' declared in metadata (historyLength=%d) but missing from state store (transient store read failure or partial save?)

What it means

Error "workflow '%s': history key '%s' declared in metadata (historyLength=%d) but missing from state store (transient store read failure or partial save?)" thrown in dapr/dapr.

Source

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

				err:  fmt.Errorf("workflow '%s': inbox key '%s' declared in metadata (inboxLength=%d) but missing from state store (transient store read failure or partial save?)", actorID, key, metadata.GetInboxLength()),
				etag: res.ETag,
			}
		}

		var hist backend.HistoryEvent
		err = proto.Unmarshal(bulkRes[key].Data, &hist)
		if err != nil {
			return nil, fmt.Errorf("failed to unmarshal history event from inbox state key '%s': %w", key, err)
		}

		wState.Inbox = append(wState.Inbox, &hist)
	}

	for i := range metadata.GetHistoryLength() {
		key = getMultiEntryKeyName(historyKeyPrefix, i)
		if bulkRes[key].Data == nil {
			return nil, &transientKeyMismatchError{
				err:  fmt.Errorf("workflow '%s': history key '%s' declared in metadata (historyLength=%d) but missing from state store (transient store read failure or partial save?)", actorID, key, metadata.GetHistoryLength()),
				etag: res.ETag,
			}
		}

		var hist backend.HistoryEvent
		err = proto.Unmarshal(bulkRes[key].Data, &hist)
		if err != nil {
			return nil, fmt.Errorf("failed to unmarshal history event from history state key '%s': %w", key, err)
		}

		wState.History = append(wState.History, &hist)
		wState.RawHistory = append(wState.RawHistory, bulkRes[key].Data)
	}

	for i := range metadata.GetSigningCertificateLength() {
		key = getMultiEntryKeyName(sigcertKeyPrefix, i)
		if bulkRes[key].Data == nil {
			if hasTamperMarker(wState) {

View on GitHub (pinned to 74ad417027)

When it happens

Trigger: Thrown at pkg/runtime/wfengine/state/state.go:862 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/ad5921a1c866f6fe. Report an issue: GitHub.