{"record":{"id":"22526e0bff241c52","repo":"apache/beam","slug":"invalid-sideinput-payload-for-v","errorCode":null,"errorMessage":"invalid SideInput payload for %v","messagePattern":"invalid SideInput payload for (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/core/runtime/exec/translate.go","lineNumber":797,"sourceCode":"\t\tdefault:\n\t\t\treturn nil, errors.Errorf(\"unexpected payload: %v\", &tp)\n\t\t}\n\n\tcase graphx.URNWindow:\n\t\tvar wp pipepb.WindowIntoPayload\n\t\tif err := proto.Unmarshal(payload, &wp); err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"invalid WindowInto payload for %v\", transform)\n\t\t}\n\t\twfn, err := unmarshalWindowFn(wp.GetWindowFn())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tu = &WindowInto{UID: b.idgen.New(), Fn: wfn, Out: out[0]}\n\n\tcase graphx.URNMapWindows:\n\t\tvar fn pipepb.FunctionSpec\n\t\tif err := proto.Unmarshal(payload, &fn); err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"invalid SideInput payload for %v\", transform)\n\t\t}\n\t\tmapper, err := unmarshalAndMakeWindowMapping(&fn)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tu = &MapWindows{UID: b.idgen.New(), Fn: mapper, Out: out[0], FnUrn: fn.GetUrn()}\n\n\tcase graphx.URNFlatten:\n\t\tu = &Flatten{UID: b.idgen.New(), N: len(transform.Inputs), Out: out[0]}\n\n\t\t// Use the same flatten instance for all the inputs links to this transform.\n\t\tfor i := 0; i < len(transform.Inputs); i++ {\n\t\t\tb.links[linkID{id.to, i}] = u\n\t\t}\n\n\tcase urnDataSink:\n\t\tport, cid, err := unmarshalPort(payload)\n\t\tif err != nil {","sourceCodeStart":779,"sourceCodeEnd":815,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/core/runtime/exec/translate.go#L779-L815","documentation":"A URNMapWindows transform's payload should unmarshal into a pipepb.FunctionSpec describing the window-mapping function (e.g. side-input views). If proto.Unmarshal fails, the payload is not a valid FunctionSpec and makeLink returns this error (message says 'SideInput payload' because MapWindows handles side-input window mapping).","triggerScenarios":"MapWindows payload bytes that are not a FunctionSpec protobuf — corrupt job submission, a foreign runner emitting a different payload schema for MapWindows, or bytes shifted by a transport/serialization bug.","commonSituations":"Custom/foreign runners; hand-edited pipeline graphs; cross-version SDK skew altering payload encoding for side-input window mappings.","solutions":["Regenerate and resubmit the pipeline with a stock Beam SDK so the payload is a valid FunctionSpec","Check the payload offline: proto.Unmarshal(payload, &pipepb.FunctionSpec{}) should succeed","Align SDK/runner versions to eliminate schema drift"],"exampleFix":"null","handlingStrategy":"validation","validationCode":"var fn pipepb.FunctionSpec\nif err := proto.Unmarshal(payload, &fn); err != nil {\n\treturn fmt.Errorf(\"payload is not a FunctionSpec: %w\", err)\n}","typeGuard":"null","tryCatchPattern":"if _, err := graph.MakePipeline(pipelineProto); err != nil {\n\tif strings.Contains(err.Error(), \"invalid SideInput payload\") {\n\t\t// regenerate the pipeline; check for foreign-runner payload schema issues\n\t}\n}","preventionTips":["Use stock Beam SDK encoders for MapWindows/side-input payloads","Version-lock runner and SDK proto definitions","Avoid hand-editing pipeline protos"],"tags":["go","apache-beam","windowing","side-input","protobuf"],"backgroundTag":"protobuf-unmarshal-failed","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}