diff --git a/hermes_cli/dashboard_auth/middleware.py b/hermes_cli/dashboard_auth/middleware.py index 2c5f5b4f7b95..5a188353976d 100644 --- a/hermes_cli/dashboard_auth/middleware.py +++ b/hermes_cli/dashboard_auth/middleware.py @@ -182,9 +182,15 @@ def _auto_sso_response(request: Request) -> Response | None: # Zero → nothing to redirect to. Two+ → user must choose at /login. return None - from hermes_cli.dashboard_auth.prefix import prefix_from_request - provider = providers[0] + + # Password-only providers (e.g. basic auth) don't have an OAuth flow; + # /auth/login?provider= would raise NotImplementedError. + # Fall through to the server-rendered /login page instead. + if getattr(provider, "supports_password", False): + return None + + from hermes_cli.dashboard_auth.prefix import prefix_from_request prefix = prefix_from_request(request) next_param = _safe_next_target(request) from urllib.parse import quote