{"record":{"id":"f93ca7889518e341","repo":"BerriAI/litellm","slug":"either-provider-or-target-model-names-must-be","errorCode":null,"errorMessage":"Either 'provider' or 'target_model_names' must be provided e.g. `?target_model_names=gpt-4o`","messagePattern":"Either 'provider' or 'target_model_names' must be provided e\\.g\\. `\\?target_model_names=gpt-4o`","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"litellm/proxy/openai_files_endpoints/files_endpoints.py","lineNumber":1415,"sourceCode":"\n            # No model/target_model_names pinned: resolve upstream credentials from\n            # the team's deployment for this provider so the call is authenticated\n            # against the team's own account (e.g. the team's openai deployment).\n            apply_team_provider_credentials(\n                data=data,\n                llm_router=llm_router,\n                user_api_key_dict=user_api_key_dict,\n                custom_llm_provider=custom_llm_provider,\n            )\n\n            response = await litellm.afile_list(\n                custom_llm_provider=custom_llm_provider,\n                purpose=purpose,\n                **data,\n            )\n\n        if response is None:\n            raise HTTPException(\n                status_code=500,\n                detail=\"Either 'provider' or 'target_model_names' must be provided e.g. `?target_model_names=gpt-4o`\",\n            )\n\n        ## POST CALL HOOKS ###\n        _response: Final = await proxy_logging_obj.post_call_success_hook(\n            data=data, user_api_key_dict=user_api_key_dict, response=response\n        )\n        if _response is not None and isinstance(_response, OpenAIFileObject):\n            response = _response\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\n        ### RESPONSE HEADERS ###\n        hidden_params: Final = getattr(response, \"_hidden_params\", {}) or {}","sourceCodeStart":1397,"sourceCodeEnd":1433,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/openai_files_endpoints/files_endpoints.py#L1397-L1433","documentation":"HTTPException raised when listing files: neither 'provider' nor 'target_model_names' was given (and no team provider credentials resolved), so the proxy cannot determine which backend to query. The caller must pin a provider or model, e.g. ?target_model_names=gpt-4o.","triggerScenarios":"Thrown at litellm/proxy/openai_files_endpoints/files_endpoints.py:1415 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide 'provider' or 'target_model_names', e.g. ?target_model_names=gpt-4o."],"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"}