{"record":{"id":"5814a3c4e8f239ac","repo":"OpenBB-finance/OpenBB","slug":"invalid-series-type-series-valid-options-are","errorCode":null,"errorMessage":"Invalid series_type: {series} -> Valid options are: {valid_options}","messagePattern":"Invalid series_type: (.+?) -> Valid options are: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"openbb_platform/providers/federal_reserve/openbb_federal_reserve/models/svensson_yield_curve.py","lineNumber":210,"sourceCode":"\n    @field_validator(\"series_type\")\n    @classmethod\n    def _validate_series_type(cls, v):\n        \"\"\"Validate series_type field.\"\"\"\n        if not v:\n            raise ValueError(\"series_type cannot be empty.\")\n\n        series_list = v.split(\",\") if isinstance(v, str) else v\n        series_list = [v.strip().lower() for v in series_list]\n\n        if \"all\" in series_list:\n            return \"all\"\n\n        valid_options = get_args(SERIES_TYPE)\n\n        for series in series_list:\n            if series not in valid_options:\n                raise ValueError(\n                    f\"Invalid series_type: {series} -> Valid options are: {valid_options}\"\n                )\n\n        return \",\".join(series_list)\n\n\nclass FederalReserveSvenssonData(Data):\n    \"\"\"Federal Reserve Svensson Yield Curve Data.\n\n    This data contains Nelson-Siegel-Svensson model parameters and derived yield curve estimates:\n    - Zero-coupon yields (SVENY): Continuously compounded, 1-30 year maturities\n    - Par yields (SVENPY): Coupon-equivalent, 1-30 year maturities\n    - Instantaneous forward rates (SVENF): Continuously compounded, 1-30 year horizons\n    - One-year forward rates (SVEN1F): Coupon-equivalent, at select horizons\n    - Model parameters (BETA0-BETA3, TAU1-TAU2): Nelson-Siegel-Svensson coefficients\n\n    Note: This is not an official Federal Reserve statistical release.\n    Because this is a staff research product, it is subject to delay,","sourceCodeStart":192,"sourceCodeEnd":228,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/federal_reserve/openbb_federal_reserve/models/svensson_yield_curve.py#L192-L228","documentation":"Pydantic field_validator error from FederalReserveSvenssonQueryParams: series_type was tokenized and lowercased, but at least one token is not in the SERIES_TYPE Literal options. The message interpolates the offending token and the valid tuple, so it tells you exactly which entry failed.","triggerScenarios":"Passing series_type values like 'zero_coupon', 'svenpy', 'par yields' (typo, wrong name, spaces instead of underscores) or a mis-cased/renamed series after a provider upgrade changed SERIES_TYPE.","commonSituations":"Copy-pasting series names from FRED (SVENY/SVENPY) instead of the provider's option names; version upgrades that renamed valid options; trailing tokens after a comma.","solutions":["Read the message: use one of the listed valid_options exactly, lowercase and underscore-separated.","Use series_type='all' if you want every series.","Programmatically intersect your desired list with the provider's Literal options before calling."],"exampleFix":"from typing import get_args\nfrom openbb_federal_reserve.models.svensson_yield_curve import SERIES_TYPE\n# before\nseries = 'SVENPY,SVENY'\n# after\nwanted = [s.strip().lower() for s in series.split(',')]\nvalid = [s for s in wanted if s in get_args(SERIES_TYPE)] or ['all']\nseries = ','.join(valid)","handlingStrategy":"validation","validationCode":"from typing import get_args\nfrom openbb_federal_reserve.models.svensson_yield_curve import SERIES_TYPE\nok = [s for s in map(str.strip, raw.split(',')) if s.lower() in get_args(SERIES_TYPE)]\nseries = ','.join(ok) if ok else 'all'","typeGuard":"def is_valid_series(v: str) -> bool:\n    from typing import get_args\n    from openbb_federal_reserve.models.svensson_yield_curve import SERIES_TYPE\n    return all(t.strip().lower() in get_args(SERIES_TYPE) for t in v.split(','))","tryCatchPattern":null,"preventionTips":["Derive allowed series from SERIES_TYPE get_args, never hardcode","Normalize tokens (strip + lower) before validation"],"tags":["openbb","validation","pydantic","yield-curve"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}