{"record":{"id":"c02ec01f1fec5b3d","repo":"OpenBB-finance/OpenBB","slug":"invalid-region-region-for-factor-factor","errorCode":null,"errorMessage":"Invalid region, '{region}', for factor '{factor}'. Only 'america' is supported.","messagePattern":"Invalid region, '(.+?)', for factor '(.+?)'\\. Only 'america' is supported\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"openbb_platform/providers/famafrench/openbb_famafrench/models/factors.py","lineNumber":122,"sourceCode":"        description=\"End date of the data. Defaults to the complete data range.\",\n        json_schema_extra={\n            \"x-widget_config\": {\n                \"value\": \"$currentDate\",\n                \"description\": \"End date of the factor data.\",\n            }\n        },\n    )\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_region_and_factor(cls, values):\n        \"\"\"Validate region and factor combination.\"\"\"\n        region = values.get(\"region\", \"america\")\n        factor = factors_dict.get(values.get(\"factor\", \"3_factors\"), \"\")\n        frequency = values.get(\"frequency\", \"\")\n\n        if factor and factor in [\"st_reversal\", \"lt_reversal\"] and region != \"america\":\n            raise ValueError(\n                f\"Invalid region, '{region}', for factor '{factor}'. Only 'america' is supported.\"\n            )\n\n        if region and region not in list(FACTOR_REGION_MAP):\n            raise ValueError(\n                f\"Invalid region: '{region}'. \"\n                + \"Valid regions are: \"\n                + \", \".join(FACTOR_REGION_MAP.keys())\n            )\n\n        regional_factors = FACTOR_REGION_MAP[region]\n\n        if factor not in regional_factors.get(\"factors\", {}):\n            raise ValueError(\n                f\"Invalid factor: '{factor}' for region: '{region}'. \"\n                + \"Valid factors are: \"\n                + \", \".join(regional_factors.get(\"factors\", {}).keys())\n            )","sourceCodeStart":104,"sourceCodeEnd":140,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/famafrench/openbb_famafrench/models/factors.py#L104-L140","documentation":"Fama-French factors query-model validator: the short-term and long-term reversal factors ('st_reversal', 'lt_reversal') exist only in the North American dataset, so requesting them with region != 'america' raises this ValueError during parameter validation, before any network call.","triggerScenarios":"Calling the Fama-French factors endpoint with factor='st_reversal' (or 'lt_reversal') and region='europe'/'japan'/'asia_pacific_ex_japan'/'north_america'/etc.","commonSituations":"Reusing a parameter set across regions in batch jobs; UIs that list all factors regardless of selected region; users assuming reversal factors are global like the 3/5-factor models.","solutions":["Set region='america' when requesting st_reversal or lt_reversal.","Or choose a factor that exists in your target region (see FACTOR_REGION_MAP[region]['factors']).","Build region-aware factor lists in your UI from FACTOR_REGION_MAP instead of a flat list."],"exampleFix":"# before\nFetcher(query={'factor': 'st_reversal', 'region': 'europe'})\n\n# after\nFetcher(query={'factor': 'st_reversal', 'region': 'america'})","handlingStrategy":"validation","validationCode":"AMERICA_ONLY = {'st_reversal', 'lt_reversal'}\n\ndef combo_ok(region: str, factor: str) -> bool:\n    return factor not in AMERICA_ONLY or region == 'america'","typeGuard":null,"tryCatchPattern":"try:\n    res = await obb.economy.famafrench.factors(factor=f, region=r, provider='famafrench')\nexcept ValueError as e:\n    if 'Only \\'america\\' is supported' in str(e):\n        r = 'america'\n        res = await obb.economy.famafrench.factors(factor=f, region=r, provider='famafrench')\n    else:\n        raise","preventionTips":["Special-case reversal factors in region-aware UIs","Validate (region, factor) pairs before batch submission"],"tags":["famafrench","factors","validation","region"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}