{"record":{"id":"5a83a1de329fb791","repo":"ScrapeGraphAI/Scrapegraph-ai","slug":"provider-llm-params-model-provider-is-not-sup-5a83a1","errorCode":null,"errorMessage":"Provider {llm_params[\"model_provider\"]} is not supported.\n             If possible, try to use a model instance instead.","messagePattern":"Provider (.+?) is not supported\\.\n             If possible, try to use a model instance instead\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"scrapegraphai/graphs/abstract_graph.py","lineNumber":205,"sourceCode":"                for provider, models_d in models_tokens.items()\n                if llm_params[\"model\"] in models_d\n            ]\n            if len(possible_providers) <= 0:\n                raise ValueError(\n                    f\"\"\"Provider {llm_params[\"model_provider\"]} is not supported.\n                                If possible, try to use a model instance instead.\"\"\"\n                )\n            llm_params[\"model_provider\"] = possible_providers[0]\n            logger.info(\n                \"Found providers %s for model %s, using %s. \"\n                \"If it was not intended please specify the model provider in the graph configuration\",\n                possible_providers,\n                llm_params[\"model\"],\n                llm_params[\"model_provider\"],\n            )\n\n        if llm_params[\"model_provider\"] not in known_providers:\n            raise ValueError(\n                f\"\"\"Provider {llm_params[\"model_provider\"]} is not supported.\n                             If possible, try to use a model instance instead.\"\"\"\n            )\n\n        if llm_params.get(\"model_tokens\", None) is None:\n            try:\n                self.model_token = models_tokens[llm_params[\"model_provider\"]][\n                    llm_params[\"model\"]\n                ]\n            except KeyError:\n                logger.warning(\n                    \"Max input tokens for model %s/%s not found, \"\n                    \"please specify the model_tokens parameter in the llm section of the graph configuration. \"\n                    \"Using default token size: 8192\",\n                    llm_params[\"model_provider\"],\n                    llm_params[\"model\"],\n                )\n                self.model_token = 8192","sourceCodeStart":187,"sourceCodeEnd":223,"githubUrl":"https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/532dfffbf6ee823a6c9cf8cfedc24a93bf026780/scrapegraphai/graphs/abstract_graph.py#L187-L223","documentation":"Raised after provider resolution when llm_params['model_provider'] is not in the hardcoded known_providers set (openai, azure_openai, google_genai, ...). This is a strict allow-list check: even if the model name resolved, an unrecognized provider string aborts LLM creation.","triggerScenarios":"Passing model_provider values like 'together', 'groq-de', 'open_router', or a provider added in a newer version than the one installed; or the inference in the preceding block picking a provider key not present in known_providers.","commonSituations":"Version drift (provider added upstream but not in the installed release); misspelled provider strings; using an integration that requires a model_instance instead of a named provider.","solutions":["Verify the exact provider strings in the known_providers set in scrapegraphai/graphs/abstract_graph.py for your version and use one of them.","Upgrade scrapegraphai to a release that supports your provider.","Pass a pre-built 'model_instance' + 'model_tokens' to skip provider dispatch entirely."],"exampleFix":"# before\nconfig = {'llm': {'model': 'mixtral', 'model_provider': 'together'}}\n\n# after\nconfig = {'llm': {'model': 'mixtral-8x7B-instruct-v0.1', 'model_provider': 'togetherai'}}","handlingStrategy":"validation","validationCode":"KNOWN = {'openai', 'azure_openai', 'google_genai', 'groq', 'anthropic', 'oneai', 'mistralai', 'hugging_face', 'deepseek', 'ernie', 'bedrock', 'nvidia', 'togetherai', 'xai'}\nprov = config['llm'].get('model_provider')\nif prov and prov not in KNOWN:\n    raise SystemExit(f\"unsupported model_provider '{prov}'; see abstract_graph.py known_providers for your version\")","typeGuard":"def is_supported_provider(cfg: dict) -> bool:\n    prov = cfg.get('llm', {}).get('model_provider')\n    return prov is None or prov in KNOWN_PROVIDERS","tryCatchPattern":"try:\n    graph = SmartScraperGraph(prompt=p, config=config)\nexcept ValueError as e:\n    if 'is not supported' in str(e):\n        raise SystemExit('Switch to model_instance + model_tokens, or a known provider string') from e\n    raise","preventionTips":["Use the exact provider identifiers from the installed version's source.","Prefer model_instance for providers not in the allow-list.","Upgrade the library when adopting a newly supported provider."],"tags":["configuration","provider","llm","allow-list"],"backgroundTag":"unsupported-provider","analyzedSha":"532dfffbf6ee823a6c9cf8cfedc24a93bf026780","analyzedAt":"2026-08-28T15:19:38.821Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}