{"record":{"id":"0cc2b69c499ec90c","repo":"apache/beam","slug":"failed-to-decode-special-type-unknown-type-v","errorCode":null,"errorMessage":"failed to decode special type, unknown type %v","messagePattern":"failed to decode special type, unknown type (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/core/runtime/graphx/serialize.go","lineNumber":725,"sourceCode":"\t\treturn typex.WindowedValueType, nil\n\n\tcase v1pb.Type_T:\n\t\treturn typex.TType, nil\n\tcase v1pb.Type_U:\n\t\treturn typex.UType, nil\n\tcase v1pb.Type_V:\n\t\treturn typex.VType, nil\n\tcase v1pb.Type_W:\n\t\treturn typex.WType, nil\n\tcase v1pb.Type_X:\n\t\treturn typex.XType, nil\n\tcase v1pb.Type_Y:\n\t\treturn typex.YType, nil\n\tcase v1pb.Type_Z:\n\t\treturn typex.ZType, nil\n\n\tdefault:\n\t\treturn nil, errors.Errorf(\"failed to decode special type, unknown type %v\", s)\n\t}\n}\n\nfunc decodeTypes(list []*v1pb.Type) ([]reflect.Type, error) {\n\tvar ret []reflect.Type\n\tfor _, elm := range list {\n\t\tt, err := decodeType(elm)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tret = append(ret, t)\n\t}\n\treturn ret, nil\n}\n\nfunc encodeInts(offsets []int) []int32 {\n\tvar ret []int32\n\tfor _, elm := range offsets {","sourceCodeStart":707,"sourceCodeEnd":743,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/core/runtime/graphx/serialize.go#L707-L743","documentation":"decodeSpecial was given a v1pb.Type_Special enum value it cannot map to a typex.* special type (XType, YType, ZType, etc.). Raised from the default branch when the special-kind payload of a Type node is unknown to this Beam version.","triggerScenarios":"decodeType processes a Type_SPECIAL node whose t.Special value falls through all known cases; called only by decodeType.","commonSituations":"Graph serialized by a newer Beam SDK that added a new special type; corrupted pipeline data; hand-assembled proto with an out-of-range Special enum.","solutions":["Upgrade the Beam Go SDK so the newer special type is recognized","Verify the pipeline data wasn't truncated or corrupted (checksum / re-export)","Re-encode the pipeline using the older SDK version that the decoder supports","Check the Special enum value in the proto against the cases in decodeSpecial"],"exampleFix":"// before\nbeamx.Unmarshal(dataFromNewerSDK, &p) // unknown special type\n\n// after\n// pin both producer and consumer to the same Beam version\ngo get github.com/apache/beam/sdks/go@v2.60.0","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"if err := beamx.Unmarshal(data, &p); err != nil {\n    if strings.Contains(err.Error(), \"unknown type\") {\n        return fmt.Errorf(\"unknown special type — SDK version skew or corrupt data: %w\", err)\n    }\n    return err\n}","preventionTips":["Match Beam versions between producer and consumer of pipeline data","Validate integrity of serialized graphs (don't truncate/edit)","Use external registered types instead of special types where possible"],"tags":["beam","go","serialization","enum","graphx"],"backgroundTag":"unsupported-enum-value","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"}