apache/beam · error
ProcessContinuation must be the final non-error return…
Error message
ProcessContinuation must be the final non-error return parameter
What it means
Sentinel error errProcessContinuationPrecedence from the funcx return-value state machine: in the rsOutput state, a return kind other than the allowed terminal transitions (such as another value after ProcessContinuation was already emitted) was encountered. ProcessContinuation, when returned by a splittable DoFn's ProcessElement, must be the final non-error return value.
Solutions
- Reorder returns so ProcessContinuation is the last non-error return value, with error (if any) after it
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at sdks/go/pkg/beam/core/funcx/fn.go:749 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/9d4e9a624ed252ca.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/go/pkg/beam/core/funcx/fn.go:749
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 {
case RetEventTime:
return rsEventTime, nilView on GitHub (pinned to 12126d8942)