{"record":{"id":"78ff010aad7ff9dc","repo":"apache/beam","slug":"unknown-model-handler-type-typ","errorCode":null,"errorMessage":"Unknown model handler type: {typ}.","messagePattern":"Unknown model handler type: (.+?)\\.","errorType":"validation","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"sdks/python/apache_beam/yaml/yaml_ml.py","lineNumber":566,"sourceCode":"\n  if not isinstance(model_handler, dict):\n    raise ValueError(\n        'Invalid model_handler specification. Expected dict but was '\n        f'{type(model_handler)}.')\n  expected_model_handler_params = {'type', 'config'}\n  given_model_handler_params = set(\n      SafeLineLoader.strip_metadata(model_handler).keys())\n  extra_params = given_model_handler_params - expected_model_handler_params\n  if extra_params:\n    raise ValueError(f'Unexpected parameters in model_handler: {extra_params}')\n  missing_params = expected_model_handler_params - given_model_handler_params\n  if missing_params:\n    raise ValueError(f'Missing parameters in model_handler: {missing_params}')\n  typ = model_handler['type']\n  model_handler_provider_type = ModelHandlerProvider.handler_types.get(\n      typ, None)\n  if not model_handler_provider_type:\n    raise NotImplementedError(f'Unknown model handler type: {typ}.')\n\n  model_handler_provider = ModelHandlerProvider.create_handler(model_handler)\n  model_handler_provider.validate(model_handler['config'])\n  schema = RowTypeConstraint.from_fields(\n      named_fields_from_element_type(pcoll.element_type) +\n      [(str(inference_tag), model_handler_provider.inference_output_type())])\n\n  return (\n      pcoll | RunInference(\n          model_handler=KeyedModelHandler(\n              model_handler_provider.underlying_handler()).with_preprocess_fn(\n                  model_handler_provider._preprocess_fn_internal()).\n          with_postprocess_fn(\n              model_handler_provider._postprocess_fn_internal()),\n          inference_args=inference_args)\n      | beam.Map(\n          lambda row: beam.Row(\n              **{","sourceCodeStart":548,"sourceCodeEnd":584,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/python/apache_beam/yaml/yaml_ml.py#L548-L584","documentation":"The 'type' string in the model_handler dict is looked up in ModelHandlerProvider.handler_types; if it doesn't match a registered handler, run_inference raises this NotImplementedError naming the unknown type.","triggerScenarios":"model_handler['type'] is a misspelled or unsupported value, e.g. 'VertexAIModelHandlerJSON', 'huggingface' with wrong casing, or a handler not registered in the installed Beam version.","commonSituations":"Typos or wrong casing in YAML; using a handler type from a newer Beam version than installed; using internal class names instead of the registered YAML type strings; custom handlers not registered via ModelHandlerProvider.","solutions":["Use a registered type string, e.g. 'VertexAI' or 'HuggingFacePipeline' (check ModelHandlerProvider.handler_types for exact keys)","Upgrade apache_beam if the handler type exists only in newer releases","Register custom handlers via ModelHandlerProvider before calling run_inference","Fix casing/typos in the type value"],"exampleFix":"# before\nmodel_handler:\n  type: vertex_ai\n  config: {...}\n# after\nmodel_handler:\n  type: VertexAI\n  config: {...}","handlingStrategy":"validation","validationCode":"from apache_beam.yaml.yaml_ml import ModelHandlerProvider\ndef check_handler_type(typ):\n    if typ not in ModelHandlerProvider.handler_types:\n        raise ValueError(f'Unknown handler type {typ!r}; known: {sorted(ModelHandlerProvider.handler_types)}')","typeGuard":"def is_known_handler_type(typ):\n    from apache_beam.yaml.yaml_ml import ModelHandlerProvider\n    return typ in ModelHandlerProvider.handler_types","tryCatchPattern":"try:\n    RunInference(model_handler=spec)\nexcept NotImplementedError as e:\n    if 'Unknown model handler type' in str(e):\n        log_known_types(); correct_spec()\n    else:\n        raise","preventionTips":["Copy handler type names from docs/examples exactly","Check ModelHandlerProvider.handler_types for the installed version","Upgrade Beam if the type was added recently"],"tags":["python","apache-beam","yaml","ml","unknown-type"],"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-14T11:17:12.474Z"}