{"record":{"id":"2d1b18f55b987fa8","repo":"BerriAI/litellm","slug":"completion-invalid-model-name-passed-in-model-mo","errorCode":null,"errorMessage":"completion: Invalid model name passed in model={model}","messagePattern":"completion: Invalid model name passed in model=(.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"litellm/proxy/pass_through_endpoints/pass_through_endpoints.py","lineNumber":251,"sourceCode":"        # skip router if user passed their key\n        if \"api_key\" in data:\n            llm_response = asyncio.create_task(litellm.aadapter_completion(**data))\n        elif llm_router is not None and llm_router.is_recognized_model(data[\"model\"]):\n            llm_response = asyncio.create_task(llm_router.aadapter_completion(**data))\n        elif (\n            llm_router is not None\n            and data[\"model\"] not in router_model_names\n            and (llm_router.default_deployment is not None or len(llm_router.pattern_router.patterns) > 0)\n        ):  # check for wildcard routes or default deployment before checking deployment_names\n            llm_response = asyncio.create_task(llm_router.aadapter_completion(**data))\n        elif (\n            llm_router is not None and data[\"model\"] in llm_router.deployment_names\n        ):  # model in router deployments, calling a specific deployment on the router (lowest priority)\n            llm_response = asyncio.create_task(llm_router.aadapter_completion(**data, specific_deployment=True))\n        elif user_model is not None:  # `litellm --model <your-model-name>`\n            llm_response = asyncio.create_task(litellm.aadapter_completion(**data))\n        else:\n            raise HTTPException(\n                status_code=status.HTTP_400_BAD_REQUEST,\n                detail={\"error\": \"completion: Invalid model name passed in model=\" + data.get(\"model\", \"\")},\n            )\n\n        # Await the llm_response task\n        response: Final = await llm_response\n\n        hidden_params: Final = getattr(response, \"_hidden_params\", {}) or {}\n        model_id: Final = hidden_params.get(\"model_id\", None) or \"\"\n        cache_key: Final = hidden_params.get(\"cache_key\", None) or \"\"\n        api_base: Final = hidden_params.get(\"api_base\", None) or \"\"\n        response_cost: Final = hidden_params.get(\"response_cost\", None) or \"\"\n\n        ### ALERTING ###\n        asyncio.create_task(\n            proxy_logging_obj.update_request_status(litellm_call_id=data.get(\"litellm_call_id\", \"\"), status=\"success\")\n        )\n","sourceCodeStart":233,"sourceCodeEnd":269,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py#L233-L269","documentation":"Validation in the assistant passthrough completion route: the request's 'model' is neither a recognized router model, a configured deployment name, nor covered by wildcard/default routes, so the proxy has no deployment to send the adapter_completion call to.","triggerScenarios":"Thrown at litellm/proxy/pass_through_endpoints/pass_through_endpoints.py:251 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a model name configured on the proxy; call GET /v1/models to list available models for your key.","Fix typos in the model parameter of the request body."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}