{"record":{"id":"e70c8bc0c52fc804","repo":"BerriAI/litellm","slug":"user-information-is-required-for-experimental-ui-l","errorCode":null,"errorMessage":"User Information is required for experimental UI login","messagePattern":"User Information is required for experimental UI login","errorType":"http","errorClass":"HTTPException","httpStatus":401,"severity":"error","filePath":"litellm/proxy/auth/login_utils.py","lineNumber":236,"sourceCode":"            )\n\n        key = response[\"token\"]\n\n        if get_secret_bool(\"EXPERIMENTAL_UI_LOGIN\"):\n            from litellm.proxy.auth.auth_checks import ExperimentalUIJWTToken\n\n            user_info: LiteLLM_UserTable | None = None\n            if _user_row is not None:\n                user_info = _user_row\n            elif user_id is not None:  # if user_id is not None, we are using the UI_USERNAME and UI_PASSWORD\n                user_info = LiteLLM_UserTable(\n                    user_id=user_id,\n                    user_role=user_role,\n                    models=[],\n                    max_budget=litellm.max_ui_session_budget,\n                )\n            if user_info is None:\n                raise HTTPException(\n                    status_code=401,\n                    detail={\"error\": \"User Information is required for experimental UI login\"},\n                )\n\n            key = ExperimentalUIJWTToken.get_experimental_ui_login_jwt_auth_token(user_info)\n\n        return LoginResult(\n            user_id=user_id,\n            key=key,\n            user_email=None,\n            user_role=user_role,\n            login_method=\"username_password\",\n        )\n\n    elif _user_row is not None:\n        \"\"\"\n        When sharing invite links\n","sourceCodeStart":218,"sourceCodeEnd":254,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/auth/login_utils.py#L218-L254","documentation":"Guard in the experimental-UI login path: EXPERIMENTAL_UI_LOGIN is enabled but no LiteLLM_UserTable could be resolved for the login (neither a user row nor UI_USERNAME/UI_PASSWORD identity), so the JWT cannot be minted.","triggerScenarios":"Thrown at litellm/proxy/auth/login_utils.py:236 when the library encounters an invalid state.","commonSituations":"Occurs when the experimental UI login callback lacks user information, e.g. IdP did not return profile claims.","solutions":["Pass valid user information (user email/ID) with the experimental UI login request.","Ensure the SSO/identity provider response includes the user info claims the proxy expects."],"exampleFix":"Retry the UI login after confirming your identity provider returns user info (email/sub) claims.","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"}