{"record":{"id":"dfbfa0e3aa53ec89","repo":"apache/beam","slug":"peek-coder-with-id-v-not-found","errorCode":null,"errorMessage":"(peek) coder with id %v not found","messagePattern":"\\(peek\\) coder with id (.+?) not found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/core/runtime/graphx/coder.go","lineNumber":414,"sourceCode":"\t// a general coder. Generally window coders are not used outside of\n\t// specific contexts, but this enables improved testing.\n\t// Window types are not permitted to be fulltypes, so\n\t// we use assignably equivalent anonymous struct types.\n\tcase urnGlobalWindow:\n\t\tw, err := b.WindowCoder(id)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Errorf(\"could not unmarshal global window coder: %w\", err)\n\t\t}\n\t\treturn &coder.Coder{Kind: coder.Window, T: typex.New(reflect.TypeOf((*struct{})(nil)).Elem()), Window: w}, nil\n\tdefault:\n\t\treturn nil, errors.Errorf(\"could not unmarshal coder from %v, unknown URN %v\", c, urn)\n\t}\n}\n\nfunc (b *CoderUnmarshaller) peek(id string) (*pipepb.Coder, error) {\n\tc, ok := b.models[id]\n\tif !ok {\n\t\treturn nil, errors.Errorf(\"(peek) coder with id %v not found\", id)\n\t}\n\treturn c, nil\n}\n\nfunc (b *CoderUnmarshaller) isCoGBKList(id string) ([]string, bool) {\n\telm, err := b.peek(id)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\tif elm.GetSpec().GetUrn() != urnLengthPrefixCoder {\n\t\treturn nil, false\n\t}\n\telm2, err := b.peek(elm.GetComponentCoderIds()[0])\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\tif elm2.GetSpec().GetUrn() != urnCoGBKList {\n\t\treturn nil, false","sourceCodeStart":396,"sourceCodeEnd":432,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/core/runtime/graphx/coder.go#L396-L432","documentation":"CoderUnmarshaller.peek looks up a coder component by its interned model id; the id was not present in the unmarshaller's models map. This means the pipeline model referenced a coder id that was never defined or was not interned before lookup. It indicates a malformed or incomplete coder reference graph.","triggerScenarios":"Resolving a nested/component coder by id during unmarshal when the pipeline model (CoderComponents) does not contain a definition for that id; corrupted or hand-assembled pipepb pipeline protos; isCoGBKList or makeCoder peeking an id absent from b.models.","commonSituations":"Pipelines serialized by another SDK omitting a component coder; truncated pipeline JSON; constructing pipepb.Coder protos manually with dangling component references.","solutions":["Inspect the pipeline model and ensure every coder component id referenced exists in the coder components map","Re-serialize the pipeline with the same SDK version rather than hand-editing the model","Upgrade the Beam Go SDK if the pipeline came from a newer SDK that interns coders differently","Check for bugs in custom code that builds pipepb.Coder messages directly"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Validate the pipeline model before unmarshalling:\n// every component id referenced by any coder exists in coderComponents\nfor id, c := range model.Components.Coders {\n    for _, comp := range c.ComponentCoderIds {\n        if _, ok := model.Components.Coders[comp]; !ok {\n            return fmt.Errorf(\"dangling coder ref %s -> %s\", id, comp)\n        }\n    }\n}","typeGuard":null,"tryCatchPattern":"// Catch and re-raise with the missing id context\nif err != nil && strings.Contains(err.Error(), \"not found\") {\n    return fmt.Errorf(\"pipeline model incomplete: %w\", err)\n}","preventionTips":["Don't construct pipepb coder protos manually with dangling ids","Serialize and deserialize with the same SDK version","Validate pipeline models after any external manipulation"],"tags":["beam","go","coder","pipeline-model"],"backgroundTag":"record-not-found","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"}