{"record":{"id":"c7b00ac7f9bec05f","repo":"langchain-ai/langchain","slug":"unsupported-output-parser-output-parser-type","errorCode":null,"errorMessage":"Unsupported output parser {output_parser_type}","messagePattern":"Unsupported output parser (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"libs/core/langchain_core/prompts/loading.py","lineNumber":147,"sourceCode":"                examples = json.load(f)\n            elif path.suffix in {\".yaml\", \".yml\"}:\n                examples = yaml.safe_load(f)\n            else:\n                msg = \"Invalid file format. Only json or yaml formats are supported.\"\n                raise ValueError(msg)\n        config[\"examples\"] = examples\n    else:\n        msg = \"Invalid examples format. Only list or string are supported.\"\n        raise ValueError(msg)  # noqa:TRY004\n    return config\n\n\ndef _load_output_parser(config: dict[str, Any]) -> dict[str, Any]:\n    \"\"\"Load output parser.\"\"\"\n    if config_ := config.get(\"output_parser\"):\n        if output_parser_type := config_.get(\"_type\") != \"default\":\n            msg = f\"Unsupported output parser {output_parser_type}\"\n            raise ValueError(msg)\n        config[\"output_parser\"] = StrOutputParser(**config_)\n    return config\n\n\ndef _load_few_shot_prompt(\n    config: dict[str, Any], *, allow_dangerous_paths: bool = False\n) -> FewShotPromptTemplate:\n    \"\"\"Load the \"few shot\" prompt from the config.\"\"\"\n    # Load the suffix and prefix templates.\n    config = _load_template(\n        \"suffix\", config, allow_dangerous_paths=allow_dangerous_paths\n    )\n    config = _load_template(\n        \"prefix\", config, allow_dangerous_paths=allow_dangerous_paths\n    )\n    # Load the example prompt.\n    if \"example_prompt_path\" in config:\n        if \"example_prompt\" in config:","sourceCodeStart":129,"sourceCodeEnd":165,"githubUrl":"https://github.com/langchain-ai/langchain/blob/e32fa9a52eab3b61ad7a45399bfde59b3e580fc4/libs/core/langchain_core/prompts/loading.py#L129-L165","documentation":"`_load_output_parser` only supports output parsers whose config `_type` equals `\"default\"` (mapped to `StrOutputParser`). Any other `_type` in the `output_parser` section of a prompt config raises `ValueError: Unsupported output parser {type}`.","triggerScenarios":"A prompt config containing `\"output_parser\": {\"_type\": \"regex\", ...}` or `{\"_type\": \"structured\"}`, ... loaded via `load_prompt`.","commonSituations":"Legacy langchain configs that serialized `RegexParser`, `PydanticOutputParser`, etc.; Hub-era prompt files with parser sections; assuming core's loader covers all legacy parser types.","solutions":["Remove the `output_parser` section from the config and attach the parser in code after loading: `prompt | MyParser()`.","Change `_type` to `\"default\"` if a plain string parser is acceptable.","Migrate to `langchain_core.load.dumpd`/`dumps` + `load`/`loads` for full round-trip serialization."],"exampleFix":"# before\n# {\"_type\": \"prompt\", \"template\": \"...\",\n#  \"output_parser\": {\"_type\": \"regex\", \"pattern\": \"...\"}}\nload_prompt('prompt.json')  # ValueError\n\n# after\nprompt = load_prompt('prompt.json')  # parser removed from config\nchain = prompt | RegexParser(pattern=\"...\")","handlingStrategy":"validation","validationCode":"op = config.get('output_parser')\nif op and op.get('_type', 'default') != 'default':\n    del config['output_parser']  # reattach in code instead\nload_prompt_from_config(config)","typeGuard":"def is_default_output_parser(config: dict) -> bool:\n    op = config.get('output_parser')\n    return op is None or op.get('_type') == 'default'","tryCatchPattern":null,"preventionTips":["Keep output parsers out of serialized prompt configs; compose them in code with `|`.","Use langchain_core.load dumpd/load when a parser must round-trip."],"tags":["prompts","loading","output-parser","config"],"backgroundTag":null,"analyzedSha":"e32fa9a52eab3b61ad7a45399bfde59b3e580fc4","analyzedAt":"2026-08-14T18:42:09.092Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}