{"record":{"id":"e5cf893f6f01d62e","repo":"assafelovic/gpt-researcher","slug":"invalid-reasoning-effort-reasoning-effort-str","errorCode":null,"errorMessage":"Invalid reasoning effort: {reasoning_effort_str}. Valid options are: {', '.join([effort.value for effort in ReasoningEfforts])}","messagePattern":"Invalid reasoning effort: (.+?)\\. Valid options are: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"gpt_researcher/config/config.py","lineNumber":230,"sourceCode":"            llm_provider, llm_model = llm_str.split(\":\", 1)\n            assert llm_provider in _SUPPORTED_PROVIDERS, (\n                f\"Unsupported {llm_provider}.\\nSupported llm providers are: \"\n                + \", \".join(_SUPPORTED_PROVIDERS)\n            )\n            return llm_provider, llm_model\n        except ValueError:\n            raise ValueError(\n                \"Set SMART_LLM or FAST_LLM = '<llm_provider>:<llm_model>' \"\n                \"Eg 'openai:gpt-4o-mini'\"\n            )\n\n    @staticmethod\n    def parse_reasoning_effort(reasoning_effort_str: str | None) -> str | None:\n        \"\"\"Parse reasoning effort string into (reasoning_effort).\"\"\"\n        if reasoning_effort_str is None:\n            return ReasoningEfforts.Medium.value\n        if reasoning_effort_str not in [effort.value for effort in ReasoningEfforts]:\n            raise ValueError(f\"Invalid reasoning effort: {reasoning_effort_str}. Valid options are: {', '.join([effort.value for effort in ReasoningEfforts])}\")\n        return reasoning_effort_str\n\n    @staticmethod\n    def parse_embedding(embedding_str: str | None) -> tuple[str | None, str | None]:\n        \"\"\"Parse embedding string into (embedding_provider, embedding_model).\"\"\"\n        from gpt_researcher.memory.embeddings import _SUPPORTED_PROVIDERS\n\n        if embedding_str is None:\n            return None, None\n        try:\n            embedding_provider, embedding_model = embedding_str.split(\":\", 1)\n            assert embedding_provider in _SUPPORTED_PROVIDERS, (\n                f\"Unsupported {embedding_provider}.\\nSupported embedding providers are: \"\n                + \", \".join(_SUPPORTED_PROVIDERS)\n            )\n            return embedding_provider, embedding_model\n        except ValueError:\n            raise ValueError(","sourceCodeStart":212,"sourceCodeEnd":248,"githubUrl":"https://github.com/assafelovic/gpt-researcher/blob/6f998577d547b1e54ec662dac63583aa11e3b84b/gpt_researcher/config/config.py#L212-L248","documentation":"Config.parse_reasoning_effort validates the reasoning effort string against the ReasoningEfforts enum values (low/medium/high, per typical versions). Anything else—including None handled separately—raises a ValueError listing valid options.","triggerScenarios":"Setting REASONING_EFFORT or passing reasoning_effort='minimal'/'max'/'' on a version whose enum only has low, medium, high; case-sensitive values like 'Medium' also fail.","commonSituations":"Using a value valid for OpenAI o-series ('minimal') on an older gpt-researcher; passing capitalized effort from a UI dropdown.","solutions":["Use a lowercase valid value: 'low', 'medium', or 'high'","Omit the setting entirely (defaults to medium)","Upgrade gpt-researcher if you need newer enum members like 'minimal'"],"exampleFix":"# before\nreasoning_effort=\"Medium\"\n# after\nreasoning_effort=\"medium\"","handlingStrategy":"validation","validationCode":"VALID = {\"low\", \"medium\", \"high\"}\neffort = os.getenv(\"REASONING_EFFORT\")\nassert effort is None or effort.lower() in VALID","typeGuard":"def is_reasoning_effort(v) -> bool:\n    return v is None or v in {\"low\",\"medium\",\"high\"}","tryCatchPattern":"try:\n    cfg = Config()\nexcept ValueError as e:\n    if \"reasoning effort\" in str(e):\n        os.environ[\"REASONING_EFFORT\"] = \"medium\"\n        cfg = Config()\n    else:\n        raise","preventionTips":["Lowercase the value before setting","Omit the setting to use the default"],"tags":["python","config","llm","validation"],"backgroundTag":"enum-validation-failed","analyzedSha":"6f998577d547b1e54ec662dac63583aa11e3b84b","analyzedAt":"2026-08-28T17:50:07.383Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}