{"record":{"id":"b72eddc568e3e265","repo":"apache/beam","slug":"beam-eventtime-must-be-first-return-parameter","errorCode":null,"errorMessage":"beam.EventTime must be first return parameter","messagePattern":"beam\\.EventTime must be first return parameter","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/core/funcx/fn.go","lineNumber":747,"sourceCode":"\tcase FnBundleFinalization:\n\t\treturn -1, errBundleFinalizationPrecedence\n\tcase FnRTracker:\n\t\treturn -1, errRTrackerPrecedence\n\tcase FnStateProvider:\n\t\treturn -1, errStateProviderPrecedence\n\tcase FnTimerProvider:\n\t\treturn -1, errTimerProviderPrecedence\n\tcase FnIter, FnReIter, FnValue, FnMultiMap:\n\t\treturn psInput, nil\n\tcase FnEmit:\n\t\treturn psOutput, nil\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"library error, unknown ParamKind: %v\", transition))\n\t}\n}\n\nvar (\n\terrEventTimeRetPrecedence        = errors.New(\"beam.EventTime must be first return parameter\")\n\terrErrorPrecedence               = errors.New(\"error must be the final return parameter\")\n\terrProcessContinuationPrecedence = errors.New(\"ProcessContinuation must be the final non-error return parameter\")\n)\n\ntype retState int\n\nconst (\n\trsStart retState = iota\n\trsEventTime\n\trsOutput\n\trsError\n\trsProcessContinuation\n)\n\nfunc nextRetState(cur retState, transition ReturnKind) (retState, error) {\n\tswitch cur {\n\tcase rsStart:\n\t\tswitch transition {","sourceCodeStart":729,"sourceCodeEnd":765,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/core/funcx/fn.go#L729-L765","documentation":"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.","triggerScenarios":"Thrown at sdks/go/pkg/beam/core/funcx/fn.go:747 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Move the mtime.Time / EventTime return value to the first position of the method's return signature","Or drop the EventTime return if event time output is not needed"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}