{"record":{"id":"41ba97e8b1ee6e9c","repo":"apache/beam","slug":"unknown-fieldtype-t","errorCode":null,"errorMessage":"unknown fieldtype: %T","messagePattern":"unknown fieldtype: %T","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/core/runtime/graphx/schema/schema.go","lineNumber":804,"sourceCode":"\t\trt, err := r.toType(sft.GetRowType().GetSchema())\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"unable to convert row type: %v\", sft.GetRowType().GetSchema().GetId())\n\t\t}\n\t\tt = rt\n\t// case *pipepb.FieldType_IterableType:\n\t// TODO(BEAM-9615): handle IterableTypes (eg. CoGBK values)\n\n\tcase *pipepb.FieldType_LogicalType:\n\t\tlst := sft.GetLogicalType()\n\t\tidentifier := lst.GetUrn()\n\t\tlt, ok := r.logicalTypes[identifier]\n\t\tif !ok {\n\t\t\treturn nil, errors.Errorf(\"unknown logical type: %v\", identifier)\n\t\t}\n\t\tt = lt.GoType()\n\n\tdefault:\n\t\treturn nil, errors.Errorf(\"unknown fieldtype: %T\", sft.GetTypeInfo())\n\t}\n\tif sft.GetNullable() {\n\t\treturn reflect.PtrTo(t), nil\n\t}\n\treturn t, nil\n}\n\n// parseTag splits a struct field's beam tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, options) {\n\tif idx := strings.Index(tag, \",\"); idx != -1 {\n\t\treturn tag[:idx], options(tag[idx+1:])\n\t}\n\treturn tag, options(\"\")\n}\n\ntype options string\n","sourceCodeStart":786,"sourceCodeEnd":822,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/core/runtime/graphx/schema/schema.go#L786-L822","documentation":"Default-case error in fieldTypeToReflectType: the FieldType's oneof payload (GetTypeInfo()) is a type the Go schema converter does not recognize at all. It reports the Go type of the unexpected protobuf wrapper via %T. IterableType, for example, is intentionally unimplemented (BEAM-9615) and falls through here or is handled elsewhere.","triggerScenarios":"A *pipepb.FieldType carrying a case not handled by the switch (e.g. IterableType payloads or FieldType variants added in newer protobufs but absent in the compiled-in pipepb version), reached via fieldToStructField or recursion.","commonSituations":"Graphs produced by newer Beam SDKs containing field types unsupported by the running Go SDK; stale vendored pipepb; cross-language pipelines using iterable-typed schema fields (CoGBK values, TODO BEAM-9615).","solutions":["Upgrade the Beam Go SDK so both the switch and pipepb cover the new field type","Avoid the unsupported field type in your schema (replace iterable fields with arrays/repeated rows)","Regenerate/update vendored pipepb to match the pipeline's schema version","Check the %T output in the message to identify exactly which FieldType wrapper is unhandled"],"exampleFix":"// before\nfield \"vals\" typed as iterable<int> in the schema (unsupported in Go)\n// after\nfield \"vals\" typed as array<int> / repeated int64, or upgrade Beam Go SDK past the BEAM-9615 limitation","handlingStrategy":"type-guard","validationCode":"switch sft.GetTypeInfo().(type) {\ncase *pipepb.FieldType_PrimitiveType, *pipepb.FieldType_MapType, *pipepb.FieldType_RowType, *pipepb.FieldType_LogicalType:\n  // ok\ndefault:\n  return fmt.Errorf(\"unsupported FieldType %T\", sft.GetTypeInfo())\n}","typeGuard":"func isSupportedFieldType(ft *pipepb.FieldType) bool {\n  switch ft.GetTypeInfo().(type) {\n  case *pipepb.FieldType_PrimitiveType, *pipepb.FieldType_MapType,\n       *pipepb.FieldType_RowType, *pipepb.FieldType_LogicalType:\n    return true\n  }\n  return false\n}","tryCatchPattern":"t, err := fieldTypeToReflectType(sft, nil)\nif err != nil && strings.Contains(err.Error(), \"unknown fieldtype\") {\n  return fmt.Errorf(\"upgrade Beam SDK or change field type %T\", sft.GetTypeInfo())\n}","preventionTips":["Pin identical Beam versions across all pipeline SDKs","Avoid iterable-typed schema fields until BEAM-9615 is resolved","Regenerate vendored pipepb when upgrading Beam","Validate schemas against the supported field-type set before submission"],"tags":["go","beam","schema","type-mismatch"],"backgroundTag":"unsupported-operation","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T21:17:11.552Z"}