{"record":{"id":"86863dfdb79ee666","repo":"apache/beam","slug":"windowing-strategy-v-not-found","errorCode":null,"errorMessage":"windowing strategy %v not found","messagePattern":"windowing strategy (.+?) not found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/core/runtime/exec/translate.go","lineNumber":366,"sourceCode":"\tcol, ok := b.desc.GetPcollections()[id]\n\tif !ok {\n\t\treturn nil, nil, errors.Errorf(\"pcollection %v not found\", id)\n\t}\n\tc, err := b.coders.Coder(col.CoderId)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tif coder.IsW(c) {\n\t\t// TODO(herohde) 3/16/2018: remove potential WindowedValue from Dataflow.\n\t\t// However, windowing strategies are not yet passed through, so the main\n\t\t// path always gives us GlobalWindows.\n\n\t\treturn coder.SkipW(c), c.Window, nil\n\t}\n\n\tws, ok := b.desc.GetWindowingStrategies()[col.GetWindowingStrategyId()]\n\tif !ok {\n\t\treturn nil, nil, errors.Errorf(\"windowing strategy %v not found\", id)\n\t}\n\twc, err := b.coders.WindowCoder(ws.GetWindowCoderId())\n\tif err != nil {\n\t\treturn nil, nil, errors.Errorf(\"could not unmarshal window coder for pcollection %v: %w\", id, err)\n\t}\n\treturn c, wc, nil\n}\n\nfunc (b *builder) makePCollection(id string) (*PCollection, error) {\n\tif n, exists := b.nodes[id]; exists {\n\t\treturn n, nil\n\t}\n\n\tlist := b.succ[id]\n\n\tvar u Node\n\tswitch len(list) {\n\tcase 0:","sourceCodeStart":348,"sourceCodeEnd":384,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/core/runtime/exec/translate.go#L348-L384","documentation":"When a PCollection's coder is not itself windowed, the builder resolves the windowing strategy from desc.GetWindowingStrategies() using the pcollection's WindowingStrategyId. A missing id means the windowing info cannot be reconstructed, so this error is returned.","triggerScenarios":"Pipeline description contains a PCollection whose WindowingStrategyId points to a non-existent windowing strategy entry, encountered in makeCoderForPCollection during plan unmarshal.","commonSituations":"Runner stripping or failing to serialize windowing strategies; hand-built protos in tests omitting the strategies map; SDK/runner protocol version skew.","solutions":["Ensure the pipeline proto populates WindowingStrategies for every referenced WindowingStrategyId","Regenerate the pipeline description via the standard graphx encoding path","Align runner and Beam Go SDK versions"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Ensure each pcollection's windowing strategy resolves\nfor id, col := range desc.GetPcollections() {\n    if _, ok := desc.GetWindowingStrategies()[col.GetWindowingStrategyId()]; !ok {\n        return fmt.Errorf(\"pcollection %s: missing windowing strategy %s\", id, col.GetWindowingStrategyId())\n    }\n}","typeGuard":null,"tryCatchPattern":"if err := exec.UnmarshalPlan(desc); err != nil {\n    if strings.Contains(err.Error(), \"windowing strategy\") && strings.Contains(err.Error(), \"not found\") {\n        // re-emit pipeline with complete windowing strategies\n    }\n}","preventionTips":["Verify windowing strategy serialization in runner-side tests","Keep SDK/runner protocol versions matched"],"tags":["go","apache-beam","windowing","pipeline-translation"],"backgroundTag":"resource-not-found","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"}