{"record":{"id":"24f0259e5f63f61f","repo":"BerriAI/litellm","slug":"user-does-not-have-permission-to-call-vector-store","errorCode":null,"errorMessage":"User does not have permission to call vector store endpoint {index_name}. Ask your administrator to add the necessary permissions to your API key/Team.","messagePattern":"User does not have permission to call vector store endpoint (.+?)\\. Ask your administrator to add the necessary permissions to your API key/Team\\.","errorType":"http","errorClass":"HTTPException","httpStatus":403,"severity":"error","filePath":"litellm/proxy/vector_store_endpoints/utils.py","lineNumber":406,"sourceCode":"        return True\n\n    # Writes are classified before reads so a path matching both patterns\n    # requires the stronger grant (e.g. the azure batch write on an index\n    # named \"analyze*\" also contains the \"/analyze\" read fragment)\n    permission_type = None\n    for endpoint in provider_vector_store_endpoints[\"write\"]:\n        if request.method == endpoint[0] and _does_endpoint_match(endpoint[1], request_route):\n            permission_type = \"write\"\n            break\n\n    if permission_type is None:\n        for endpoint in provider_vector_store_endpoints[\"read\"]:\n            if request.method == endpoint[0] and _does_endpoint_match(endpoint[1], request_route):\n                permission_type = \"read\"\n                break\n\n    if permission_type is None:\n        raise HTTPException(\n            status_code=403,\n            detail=(\n                f\"User does not have permission to call vector store endpoint \"\n                f\"{index_name}. Ask your administrator to add the necessary \"\n                \"permissions to your API key/Team.\"\n            ),\n        )\n\n    # Check if key has specific permission for allowed_vector_store_indexes\n    has_permission: Final = check_vector_store_permission(\n        index_name=index_name,\n        permission=permission_type,\n        key_metadata=key_metadata,\n        team_metadata=team_metadata,\n    )\n\n    if not has_permission:\n        raise HTTPException(","sourceCodeStart":388,"sourceCodeEnd":424,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/vector_store_endpoints/utils.py#L388-L424","documentation":"Vector-store endpoint permission check: the request's method+route matched a provider write or read pattern, but check_vector_store_permission found no matching grant in the key/team metadata (vector_store_endpoints field). The index name is named in the message; an admin must add the endpoint permission to the key or team.","triggerScenarios":"Thrown at litellm/proxy/vector_store_endpoints/utils.py:406 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ask your administrator to add vector store endpoint permissions to your API key or team."],"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"}