{"record":{"id":"073723cced296d72","repo":"apache/beam","slug":"unrecognized-type-info-type-info-r-schemas","errorCode":null,"errorMessage":"Unrecognized type_info: {type_info!r}","messagePattern":"Unrecognized type_info: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"sdks/python/apache_beam/typehints/schemas.py","lineNumber":626,"sourceCode":"      else:\n        return row_type.RowTypeConstraint.from_user_type(\n            user_type,\n            schema_options=schema_options,\n            field_options=field_options)\n\n    elif type_info == \"logical_type\":\n      if fieldtype_proto.logical_type.urn == PYTHON_ANY_URN:\n        return Any\n      else:\n        return LogicalType.from_runner_api(\n            fieldtype_proto.logical_type).language_type()\n\n    elif type_info == \"iterable_type\":\n      return Sequence[self.typing_from_runner_api(\n          fieldtype_proto.iterable_type.element_type)]\n\n    else:\n      raise ValueError(f\"Unrecognized type_info: {type_info!r}\")\n\n  def named_tuple_from_schema(self, schema: schema_pb2.Schema) -> type:\n    from apache_beam import coders\n\n    type_name = 'BeamSchema_{}'.format(schema.id.replace('-', '_'))\n\n    subfields = []\n    descriptions = {}\n    for field in schema.fields:\n      try:\n        field_py_type = self.typing_from_runner_api(field.type)\n        if isinstance(field_py_type, row_type.RowTypeConstraint):\n          field_py_type = field_py_type.user_type\n      except ValueError as e:\n        raise ValueError(\n            \"Failed to decode schema due to an issue with Field proto:\\n\\n\"\n            f\"{text_format.MessageToString(field)}\") from e\n","sourceCodeStart":608,"sourceCodeEnd":644,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/python/apache_beam/typehints/schemas.py#L608-L644","documentation":"`typing_from_runner_api` dispatches on the FieldType proto's WhichOneof('type_info'). If the discriminator is none of the known branches (atomic_type, array_type, map_type, row_type, iterable_type, logical_type, etc.), it raises this ValueError — the proto contains a type_info value this SDK version doesn't understand.","triggerScenarios":"Decoding a FieldType proto with an unrecognized type_info, typically protos emitted by a newer Beam runner/SDK or another language SDK using a type not yet supported in Python.","commonSituations":"Mixed SDK versions in cross-language pipelines; deserializing cached schema protos written by a newer Beam release.","solutions":["Upgrade apache-beam to match the producer's protocol version","Identify the unexpected type_info value from the message and restructure the schema to use supported types","Regenerate/re-export the schema with an older-compatible SDK"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"info = fieldtype_proto.WhichOneof('type_info')\nknown = {'atomic_type','array_type','map_type','row_type','iterable_type','logical_type'}\nassert info in known, f'unknown type_info {info}'","typeGuard":null,"tryCatchPattern":"try:\n  pytype = converter.typing_from_runner_api(fieldtype)\nexcept ValueError as e:\n  raise SchemaDecodeError(str(e)) from e","preventionTips":["Use the same Beam version across all SDKs in the pipeline","Re-export cached schema protos when upgrading Beam"],"tags":["python","schema","protobuf","type-info"],"backgroundTag":"invalid-enum-value","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"}