apache/beam · error

beam.EventTime must be first return parameter

Error message

beam.EventTime must be first return parameter

What it means

Sentinel error errEventTimeRetPrecedence from the funcx return-value state machine (nextRetState): a typex.Window or other return kind was encountered before an RetEventTime, meaning an EventTime return was declared after a non-first position. If a DoFn method returns beam.EventTime (mtime), it must be the first return value.

Solutions

  1. Move the mtime.Time / EventTime return value to the first position of the method's return signature
  2. Or drop the EventTime return if event time output is not needed
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at sdks/go/pkg/beam/core/funcx/fn.go:747 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/beam@12126d8942 (2026-09-13). Data as JSON: /api/errors/b72eddc568e3e265. Report an issue: GitHub.

Appendix: source

Thrown at sdks/go/pkg/beam/core/funcx/fn.go:747

	case FnBundleFinalization:
		return -1, errBundleFinalizationPrecedence
	case FnRTracker:
		return -1, errRTrackerPrecedence
	case FnStateProvider:
		return -1, errStateProviderPrecedence
	case FnTimerProvider:
		return -1, errTimerProviderPrecedence
	case FnIter, FnReIter, FnValue, FnMultiMap:
		return psInput, nil
	case FnEmit:
		return psOutput, nil
	default:
		panic(fmt.Sprintf("library error, unknown ParamKind: %v", transition))
	}
}

var (
	errEventTimeRetPrecedence        = errors.New("beam.EventTime must be first return parameter")
	errErrorPrecedence               = errors.New("error must be the final return parameter")
	errProcessContinuationPrecedence = errors.New("ProcessContinuation must be the final non-error return parameter")
)

type retState int

const (
	rsStart retState = iota
	rsEventTime
	rsOutput
	rsError
	rsProcessContinuation
)

func nextRetState(cur retState, transition ReturnKind) (retState, error) {
	switch cur {
	case rsStart:
		switch transition {

View on GitHub (pinned to 12126d8942)