{"record":{"id":"2c0de468ba61642a","repo":"BerriAI/litellm","slug":"target-model-names-must-be-a-comma-separated-strin","errorCode":null,"errorMessage":"target_model_names must be a comma-separated string or list of model names","messagePattern":"target_model_names must be a comma-separated string or list of model names","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"litellm/proxy/vector_store_endpoints/endpoints.py","lineNumber":218,"sourceCode":"        user_model,\n        user_request_timeout,\n        user_temperature,\n        version,\n    )\n\n    data: Final = await _read_request_body(request=request)\n\n    # Check for target_model_names parameter\n    target_model_names: Final = data.pop(\"target_model_names\", None)\n\n    if target_model_names:\n        # Use managed vector stores for multi-model support\n        if isinstance(target_model_names, str):\n            target_model_names_list = [m.strip() for m in target_model_names.split(\",\")]\n        elif isinstance(target_model_names, list):\n            target_model_names_list = target_model_names\n        else:\n            raise HTTPException(\n                status_code=400,\n                detail=\"target_model_names must be a comma-separated string or list of model names\",\n            )\n\n        # Get managed vector stores hook\n        managed_vector_stores: Final[Any] = proxy_logging_obj.get_proxy_hook(\"managed_vector_stores\")\n        if managed_vector_stores is None:\n            raise HTTPException(\n                status_code=500,\n                detail=\"Managed vector stores not configured. Please ensure the proxy is initialized with database support.\",\n            )\n\n        if llm_router is None:\n            raise HTTPException(\n                status_code=500,\n                detail=\"LLM Router not initialized. Ensure models are added to proxy.\",\n            )\n","sourceCodeStart":200,"sourceCodeEnd":236,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/vector_store_endpoints/endpoints.py#L200-L236","documentation":"Type guard on the optional target_model_names request field: it was supplied but is neither a comma-separated string nor a list, so the multi-model vector-store routing list cannot be built. JSON payloads should pass an array or a 'a,b,c' string.","triggerScenarios":"Thrown at litellm/proxy/vector_store_endpoints/endpoints.py:218 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass target_model_names as a comma-separated string or a JSON list of model names."],"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"}